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

我正在Excel中的项目,我想validation一个数据集,每当列中的两个单元格有重复我想写的副本的位置到不同的工作表,其中包含一堆关于数据中的错误的信息。

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

我发现一些代码几乎完成这个任务在不同的堆栈问题…

超链接到实际工作簿中的现有工作表

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

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

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

 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 

但它不起作用。 没有错误产生,所以我真的在为什么这是行不通的损失。

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

像这样改变它:

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

为什么你需要有一个表.Hyperlinks

基于这里的MSDN文档,我相信这是因为HyperLinkssheets类的一种方法,所以它是调用方法的唯一方法。 您可以使用Activesheet或在开始时调用任何表来调用该方法,然后将超链接锚点分配到您想要的位置。

也许你可以试试这个…

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

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

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

有可能这一对“'可能被省略了。

这些是我用来在VBA上创build超链接到一个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" 

在我的情况下,当我点击由Portlands Runner代码创build的超链接时,遇到“超链接无效”错误。 围绕并join表格(“Sheet1”)。通过aphostrophes的名称解决了这个问题,错误消失了。 如果你遇到相同的情况,那就这样使用它:

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