从不同工作簿中的单元格提取超链接目标
我有一个自定义右键单击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的=HYPERLINK
function。 我想最后的手段我可以采取公式,并切断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声明 – 只是原因,但是,您应该始终对它们进行整洁的控制,并在模块的开头使用显式选项。