Excel VBA在不同的工作表中创建超链接到同一工作簿中的不同工作表

时间:2013-11-20 20:54:21

标签: excel vba excel-vba hyperlink

我正在研究Excel中的项目,我希望验证数据集,只要列中的两个单元格有重复我想将副本的位置写入包含大量有关错误信息的不同工作表在数据中。

所以我的数据在工作表1中,当我运行我的代码时,我正在写一个指向工作表2中某个单元格的超链接,链接到工作表1中的错误。

我发现一些代码几乎可以在不同的堆栈问题中完成此任务......

Hyperlink to Existing Worksheet in actual Workbook

ActiveSheet.Hyperlinks.Add ActiveCell, "", Sheets(fortnr).Name & "!A1"

但是,这会在您当前处于(或处于活动状态)的工作簿中创建超链接。

我修改了一下代码,但似乎无法让它运行...

Sheets("Sheet3").Hyperlinks.Add Cells(3, 3), "", Sheets("Sheet1").Name & "!B2", _
"", "Hello"

我也试过

Sheets("Sheet3").Activate
ActiveSheet.Hyperlinks.Add Cells(3, 3), "", Sheets(fortnr).Name & "!A1"
Sheets("Sheet1").Activate

但它不起作用。也没有产生任何错误,所以我真的不知道为什么这不起作用。

4 个答案:

答案 0 :(得分:3)

您的锚单元格未指定要锚定的工作表,因此默认为活动工作表。

像这样改变:

Sheets("Sheet3").Hyperlinks.Add Sheets("Sheet3").Cells(3, 3), "", Sheets("Sheet1").Name & "!B2", "", "Hello"

为什么在.Hyperlinks之前需要张贴?

基于MSDN文档here我相信这是因为HyperLinkssheets类的方法,因此它是调用该方法的唯一方法。您可以使用Activesheet或在开始时调用任何工作表来调用方法,然后将超链接锚点指定给您想要的位置。

答案 1 :(得分:0)

这些是我用来在VBA上创建超链接到URL或特定电子表格的那些

Sheets("RogueOne").Hyperlinks.Add Anchor:=Sheets("RogueOne").Cells(3, 4), Address:="http://wired.com", ScreenTip:="Wired", TextToDisplay:="WIRED"
    Sheets("RogueOne").Hyperlinks.Add Sheets("RogueOne").Cells(5, 5), "", Sheets("RogueTwo").Name & "!c2", "", "RogueTwo"

答案 2 :(得分:0)

也许你可以试试这个......

Dim WS as Worksheet
ActiveSheet.Hyperlinks.add Anchor:=Selection, Address:="", SubAddress:= _
        "'" & WS.Name & "'" & "!A1", TextToDisplay:=WS.Name

因为当您查看链接时,通常会显示

file:///name'WS.name'!A1

有可能这对' '可能已被省略。

答案 3 :(得分:0)

在我的情况下,我经历过"超链接无效"单击由Portlands Runner代码创建的超链接时出错。围绕并加入表格(" Sheet1")。名称由aphostrophes解决了该问题并且该错误消失了。如果您遇到相同的问题,请按照以下方式使用:

Sheets("Sheet3").Hyperlinks.Add Sheets("Sheet3").Cells(3, 3), "", "'" & Sheets("Sheet1").Name & "'" & "!B2", "", "Hello"