2016-03-01 104 views
0

我希望有人可以幫助我,因爲我很好,真正卡住了。使用VBA - 超鏈接是可變的超鏈接(基於地址和匹配公式)

我正在嘗試編寫一個宏,它可以跟隨超鏈接到另一個電子表格中的單元格。我選擇使用超鏈接的原因是我需要單元格引用是可變的。

我寫的公式如下:

=HYPERLINK("#'Label Editor'!"&ADDRESS(MATCH(A1,'Label Editor'!$B$1:$B$1001,0),3),"Go to label")

公式工作正常 - 但問題是,當我嘗試錄製宏。相反,以下超鏈接的,它記錄如下一個固定的單元格引用:

Sub Test1() 
' 
' Test1 Macro 
' 
' Keyboard Shortcut: Option+Cmd+q 
' 
    Range("G1:I1").Select 
    **Application.Goto Reference:="'Label Editor'!R125C3"** 
    Selection.Copy 
    Sheets("5x13").Select 
    Range("A2:A22").Select 
    ActiveSheet.Paste 
End Sub 

我一直試圖找到一種方法,在宏內的超級鏈接整合,但至今無果。我試着用查找公式代替它,如下所示:

**Application.Goto Reference:=Application.VLookup([A1], [Label Editor], [$b$1:c$1000], 2, False)** 
    Selection.Copy 
    Sheets("5x13").Select 
    Range("A2").Select 
    ActiveSheet.Paste 
    Range("I2:I254,G2:G254,E2:E254,C2:C254,A2:A254").Select 
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ 
     False, Transpose:=False 
End Sub 

然而,這又發表了:運行時錯誤「1004」:

我現在完全被卡住 - 誰能幫助?

回答

1

您可以使用Hyperlinks對象的Follow方法。

ActiveCell.Hyperlinks(1).Follow  
+0

感謝@目的地的數據。我已修改宏以包含** Range(「g1:i1」)。Select ** ** ActiveCell.Hyperlinks(1).Follow ** Selection.Copy Sheets(「5x13」)。Select Range (「A2」)。選擇 ActiveSheet.Paste 範圍(「I2:I254,G2:G254,E2:E254,C2:C254,A2:A254」)選擇 Selection.PasteSpecial Paste:= xlFormats,Operation:= xlNone,SkipBlanks:= _ False,Transpose:= False 現在出現**運行時錯誤'9':下標超出範圍** 任何想法是什麼造成這種情況? – ben12956

+0

哪一行引發錯誤? –

+0

ActiveCell.Hyperlinks(1).Follow – ben12956