2016-08-05 105 views
0

我有一张汇总表,我用它作为索引通过超链接访问多个工作表。我正在对它进行扩展,以便它们直接链接到每张表格中的相应行。使用动态超链接中的变量值

我对VBA很陌生,对语法不太确定。 我基本上试图使用变量j的值作为单元格引用中的行号。 "'!A"是我在下面的代码中的单元格ref的第一部分。然后我尝试连接字符串以将j添加为行号。这可以使用下面的代码来完成吗?我试图围绕j括号,撇号无济于事。

For j = 2 To LastUsedRow 

    link = "=Hyperlink(""#'" & (ThisWorkbook.Worksheets(i).Name) & "'!A" & j",""" & (ThisWorkbook.Worksheets(i).Name) & """)" 

非常感谢

回答

1

Debug.Print是你的朋友。这就是你当前的代码(假设j = 1ThisWorkbook.Worksheets(i).Name = "Sheet1")获得:

=Hyperlink("#'Sheet1'!A1,"Sheet1") 

的公式应该是这样的:

=HYPERLINK("#'Sheet2'!A1","Sheet2") 

所以...添加刚才添加缺少的"

link = "=HYPERLINK(""#'" & (ThisWorkbook.Worksheets(i).Name) & _ 
     "'!A" & j & """,""" & (ThisWorkbook.Worksheets(i).Name) & """)" 
+0

太棒了。非常感谢! –

-1

你需要在你想从j拉,比如什么叫:j.Value

+1

j是一个整数,它没有属性。 – hstay

+0

说谁?看起来像j是一个范围,从2到LastUsedRow。所以如果你想调用j的值,那么你可以这样做:j.value。 – AnthonyT

+0

'Dim j As Range''j = 2' 让我知道何时可以工作 – hstay

1

的包括VBA字符串中双引号是棘手的。

link = "=Hyperlink(""#'" & (ThisWorkbook.Worksheets(i).Name) & "'!A" & j & """,""" & (ThisWorkbook.Worksheets(i).Name) & """)" 

将得到link作为=Hyperlink("#'SheetName'!A2","SheetName")

+0

感谢您的输入,现在效果很好 –