2014-12-30 132 views
-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 

由于 Ĵ

回答

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 

我已经丢弃所有的中间列的和几乎所有的选择和复制的。该公式只是串接到URL的末尾在E3的最后5个字符,并使用E3的全文为被点击

+0

链接文本谢谢barrowc,即完美。 – jellybean1977