【发布时间】:2014-12-30 11:10:10
【问题描述】:
首先,我想要的结果是连接两个单元格以创建一个超链接。一个单元格有我们的票务管理系统的网址,另一个单元格有票号。这两个单元格存在于双击数据透视表的 DrillDown 表中,其源数据确实已经具有超链接,但它没有拉到向下钻取表,并且正如我在多个论坛上阅读的那样,不可能让它度过难关。
所以我记录了连接的宏,然后将连接的值粘贴到另一个单元格并执行回车并将其设为超链接。繁荣!工作完成了吗?
不,当我在其他一些数据上测试录制的宏时,它正确地进行了所有连接,但是当它到达粘贴值位时,它粘贴了我正在处理的先前数据的值?
在 VBA 中有没有办法让它复制和粘贴所选单元格的值,而不是在录制宏期间硬编码的内容?
抱歉,如果这流血明显,但我不是 VBA 专家......远非如此。
Sub CreateHyperlink()
'
' CreateHyperlink Macro
'
'
Columns("A:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D3").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[1],5)"
Range("A3").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(""=HYPERLINK(""""http://test.analytics.com/workspace/379/item/"",RC4,"""""""","","","" "","""""""",RC5,"""""""","")"")"
Range("A4").Select
Columns("A:A").EntireColumn.AutoFit
Range("B3").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-1],LEN(RC[-1])-0)"
Range("B3").Select
Columns("B:B").EntireColumn.AutoFit
Range("B3").Select
Selection.Copy
Range("C3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("B3").Select
Selection.Copy
Range("C3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("B3").Select
Selection.Copy
Range("C3").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=HYPERLINK(""http://test.analytics.com/workspace/379/item/55949"", ""INQ-55949"")"
Range("C4").Select
Columns("C:C").EntireColumn.AutoFit
End Sub
谢谢 J
【问题讨论】:
标签: excel copy-paste hardcoded vba