excel 从函数向图像添加超链接

dphi5xsq  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(160)

我试图使VBA功能添加一个图像从文件路径和添加一个超链接到它。
它需要从一个函数调用,它不能是一个Sub。

Function AddHyperlinkedImage()
    InsertPictureHyperlink
End Function

Sub InsertPictureHyperlink()
    Dim pct As Picture, iLeft#, iTop#
    Dim sFile As String
    sFile = "C:\somepath\picture.jpg"
    If Dir(sFile) = "" Then
        Exit Sub
    End If
    With Range("A1")
        .Select
        iLeft = .Left: iTop = .Top
    End With
    Set pct = ActiveSheet.Pictures.Insert(sFile)
    pct.Left = iLeft
    pct.Top = iTop
    With Worksheets("Sheet1")
        .Hyperlinks.Add Anchor:=.Shapes(pct.Name), Address:="somexcel.xlsx"
    End With
End Sub

它添加图片,但不添加超链接。当我自己运行子程序时,它添加图片并超链接。
但是我需要它以函数的形式出现,不能是按钮之类的东西,我必须能够用=SomeFunction()调用它。

cngwdvgl

cngwdvgl1#

因此,您可以尝试使用UDF事件来调用InsertPictureHyperlink()宏,而不是UDF。为了确保宏不会在您更改单元格时触发,请添加一个条件在输入特定关键字时触发宏。这里的关键字为AddHyperlinkedImage

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = "AddHyperlinkedImage" Then
    Application.EnableEvents = False
    
        InsertPictureHyperlink
        
    Application.EnableEvents = True
End If

End Sub
Sub InsertPictureHyperlink()

MsgBox "Macro enabled - add your code in this sub"

End Sub

相关问题