【问题标题】:Excel: retrieve hyperlink from an image in a cellExcel:从单元格中的图像中检索超链接
【发布时间】:2014-12-12 19:54:16
【问题描述】:

在 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。不幸的是,答案没有让我更进一步。 请添加示例代码。 谢谢。

【问题讨论】:

    标签: excel hyperlink vba


    【解决方案1】:

    一个形状也有一个 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")
    如果图片在不同的工作表中,那就完全不同了,我把它留给读者作为练习。

    【讨论】:

    • 不幸的是,提供的代码对我不起作用。知道我做错了什么。请不要担心工作表。我需要的是扩展/修改初始功能(如我的问题中所述),以便它可以读取该单元格中图像的 URL。
    • 最好是你的函数在同一张表上为一对单元格工作。
    • 我把它当作 Excel 工作表中所有形状的脚本。 Sub ConvertHLShapes() Dim shp As Shape Dim sTemp As String For Each shp In ActiveSheet.Shapes sTemp = "" On Error Resume Next 'go to next shape if no hyperlink sTemp = shp.Hyperlink.Address On Error GoTo 0 If sTemp <> "" Then shp.TopLeftCell.Value = sTemp shp.Delete End If Next End Sub
    • 我宁愿有一个函数被放置到特定的单元格中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多