Excel:从单元格中的图像中检索超链接

时间:2014-12-12 19:54:17

标签: excel excel-vba hyperlink vba

在Excel工作表(通过导入外部数据和图像创建)中,有几个单元格,每个单元格包含不同的图像,并且该图像具有超链接。这些包含图像的单元格都在一列中。

如何从每张图片中检索该超链接? 无法从该单元格中检索超链接。

我有一个用户定义的函数,可以轻松地从任何单元格中检索超链接(如果有超链接)。

Function GetURL(rng As Range) As String
On Error Resume Next
GetURL = rng.Hyperlinks(1).Address
End Function

此功能可以放在任何地方。 例如:在单元格c25中,必须列出单元格A1中超链接的URL。 为此,只需在单元格c25中输入以下公式。

=GetURL(A1)

这很好用。

但是,如果该单元格A1包含带有超链接的图像,则结果为nil(或无)。即使超链接是该图像的一部分。

显然,图像是需要解决的对象。 怎么办呢?

刚找到possible duplicate。不幸的是,答案并没有让我更进一步。 请添加示例代码。 谢谢。

1 个答案:

答案 0 :(得分:0)

一个形状也有一个Hyperlink.Address
形状在工作表上定义,并且还有一个名称 把这些放在一起,我想出了以下功能:

Function PicURL(Pic As String, Optional SheetName As String) As String
If SheetName = "" Then SheetName = Application.Caller.Worksheet.Name
On Error Resume Next
PicURL = Sheets(SheetName).Shapes(Pic).Hyperlink.Address
End Function

使用: 如果图片在同一张纸上,则=PicURL("Picture 1")将返回目标地址 如果图片在另一张纸上,则需要=PicURL("Picture 1","Sheet1") 如果图片是在不同的工作表中,那么这是一个完全不同的球赛,我将其作为练习留给读者。