从不同工作簿中的单元格提取超链接目标

我有一个自定义右键单击function的工作簿,从其他工作簿中提取取决于用户select的单元格值。 它工作得很好,我只是从另一个工作簿中获取单元格的价值。 有些单元格包含超链接,但我想导入function超链接,而不是单元格中显示的值。 例如,以下图像在input工作簿的图纸BOS的单元格(Y216)中包含超链接。

在这里输入图像说明

这是我想要复制的单元格的图像。 这确实是一个超链接。

?application.Workbooks(2).Sheets("BOS").Range("Y216").value 

返回MKB 70-203 Wicket剪切销检测系统,这确实是正确的。

但是,我如何采取超链接的目的地? 我尝试了几件事情,包括

 ?application.Workbooks(2).Sheets("BOS").Range("Y216").Hyperlinks.count 

即使您可以在图像中看到超链接确实有地址,也会返回0。 以同样的方式,下面的sub不会inputFor Each,因为它计数了0个超链接。

 Sub HLtester() Dim HL As Hyperlink For Each HL In Application.Workbooks(2).Sheets("BOS").Range("Y216").Hyperlinks Debug.Print HL.Address Next End Sub 

预期的输出将是链接的目标J:\SOUM\3191....如图所示。

编辑

如果这个单元的公式是重要的

 =LIEN_HYPERTEXTE("J:\SOUM\3191 M - Old Hickory Dam\11_BOS_FT\02_FT_MECT\21-200 Headcover";"21-200 Headcover") 

顺便说一下,这就是French Excel的=HYPERLINKfunction。 我想最后的手段我可以采取公式,并切断function部件检索链接部分?

你的命令适用于我,我不知道你为什么设置范围,如果你想循环表中的所有超链接 – 无论你为什么设置为应用程序。 工作簿,无论如何,这对我工作得很好:

 Sub HLtester() Dim HL As Hyperlink For Each HL In Sheets("Sheet1").UsedRange.Hyperlinks Debug.Print HL.Address Next End Sub 

在这里输入图像说明

你也可以在范围内使用以下方法

 ActiveCell.Hyperlinks(1).Address 

你可能会在这里得到更多信息

编辑:
计数可能是错误的,因为“application.workbook”,尝试将其声明为一个variables,而不是在代码中使用它

 Sub HLtester() Dim HL As Hyperlink Dim WBAnalyzed As Workbook: Set WBAnalyzed = Workbooks("MyWB.xlsm") For Each HL In WBAnalyzed.Sheets("Sheet1").UsedRange.Hyperlinks Debug.Print HL.Address Next End Sub 

编辑2:
这是当它的公式给出超链接的时候build议的方法

 Sub test() On Error Resume Next 'means no formula x = Evaluate(Range("A1").Formula) x1 = Sheets("Sheet1").UsedRange.Hyperlinks.Count Debug.Print x Debug.Print x1 End Sub 

PS:我保存了我的variables声明 – 只是原因,但是,您应该始终对它们进行整洁的控制,并在模块的开头使用显式选项。

在这里输入图像描述