【发布时间】:2016-08-03 01:23:32
【问题描述】:
我有一个具有自定义右键单击功能的工作簿,该功能可以根据用户选择的内容从另一个工作簿中提取单元格值。它工作得很好,我只是从另一个工作簿中获取单元格的值。不过,有些单元格包含超链接,我想导入功能超链接,而不是单元格中显示的值。例如,下图包含输入工作簿工作表 BOS 的单元格 (Y216) 中的超链接。
这是我要复制的单元格的图像。确实是超链接。
?application.Workbooks(2).Sheets("BOS").Range("Y216").value
返回 MKB 70-203 Wicket Shear Pin Detection System,这确实是正确的。
但是如何获取超链接的目的地?我尝试了几件事,包括
?application.Workbooks(2).Sheets("BOS").Range("Y216").Hyperlinks.count
即使您可以在图像中看到超链接确实有地址,也会返回 0。以同样的方式,下面的 sub 不会进入 For 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")
顺便说一下,这是法语 Excel 的=HYPERLINK 函数。我想在万不得已的情况下,我可以采用公式并切断function 部分以检索链接部分?
【问题讨论】:
-
您是否检查过 Workbooks(2).Sheets("BOS").Hyperlinks 以查看工作表上是否存在超链接(如果不在该特定范围内)?如果它们存在,您能否查看它们并确认其中一个位于 Y216?
-
@Mikegrann 它根本不返回整个工作表的超链接。也许我的超链接有问题?我尝试了它们,它们起作用了。它们是使用 =Hyperlink 公式(不是 VBA)创建的。它们都指向外部参考。
debug.print .Formula给出=HYPERLINK("J:\SOUM\3191 M - Old Hickory Dam\11_BOS_FT\02_FT_MECT\HM3191 00 MEF 32-202 F DA-01.pdf","HM3191 00 MEF 32-202 F DA-01.pdf")所以我想我可以在最坏的情况下围绕我的目标修剪公式...... -
嗯,我想这可以解释。我会四处寻找它,但我很确定我以前遇到过这种情况:通过工作表函数创建的超链接的处理方式与插入的超链接不同,只有后者出现在
Hyperlinks集合中。看起来您将不得不手动从Range.Formula中提取参数