2014-12-30 82 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