-1

首先,我想要的结果是连接两个单元格以创建一个超链接。一个单元格有我们的票务管理系统的网址,另一个单元格有票号。这两个单元格存在于双击数据透视表的 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

4

1 回答 1

2

事情可以简化一点:

Sub CreateHyperlink()
'
' CreateHyperlink Macro
'

' Move everything four columns to the right
Columns("A:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

' Create the hyperlink by adding the last 5 characters of the ticket number and then use the full ticket number. The full ticket number is in cell E3
Range("C3").FormulaR1C1 = _
     "=HYPERLINK(CONCATENATE(""http://test.analytics.com/workspace/379/item/"",RIGHT(RC[2],5)),RC[2])
Range("C4").Select
Columns("C:C").EntireColumn.AutoFit

End Sub

我已经丢弃了所有的中间列以及几乎所有的选择和复制。这个公式只是将 E3 中的最后 5 个字符连接到 URL 的末尾,并使用 E3 的全文作为要单击的链接文本

于 2015-01-01T03:00:22.133 回答