2016-03-01 25 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