image - Excel VBA自定义函数从URL故障插入图像

标签 image excel function url vba

我是在 VBA 中创建函数的新手。以下代码是对找到的脚本的修改 here .该代码将两个来自 url(或来自文件系统)的图像插入 Excel 电子表格中的两个用户定义范围。在目标工作表中,我有一个公式引用同一工作簿中源工作表中包含 URL 的单元格。该代码在它自己的工作表上正常工作,但是,当我在源工作表上工作时,它还会在我保存文档或复制/粘贴时将图像插入到源工作表中。如何在告诉 Excel 仅粘贴到目标工作表上时保持功能通用?如何防止代码在每次保存或复制/粘贴时重新计算?谢谢!禅

Public Function NewPicsToRanges(URL1 As String, URL2 As String, Optional TargetCells1 As Range, Optional TargetCells2 As Range)
' inserts a picture and resizes it to fit the TargetCells range

ActiveSheet.Shapes.SelectAll
Selection.Delete

Dim p1 As Object, t1 As Double, l1 As Double, w1 As Double, h1 As Double
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Function
    'If Dir(URL1) = "" Then Exit Function
    ' import picture
    Set p1 = ActiveSheet.Pictures.Insert(URL1)
    ' determine positions
    With TargetCells1
        t1 = .Top
        l1 = .Left
        w1 = .Offset(0, .Columns.Count).Left - .Left
        h1 = .Offset(.Rows.Count, 0).Top - .Top
    End With
    ' position picture
    With p1
        .Top = t1
        .Left = l1
        .Width = w1
        .Height = h1
    End With
    Set p1 = Nothing

Dim p2 As Object, t2 As Double, l2 As Double, w2 As Double, h2 As Double
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Function
    'If Dir(URL2) = "" Then Exit Function
    ' import picture
    Set p2 = ActiveSheet.Pictures.Insert(URL2)
    ' determine positions
    With TargetCells2
        t2 = .Top
        l2 = .Left
        w2 = .Offset(0, .Columns.Count).Left - .Left
        h2 = .Offset(.Rows.Count, 0).Top - .Top
    End With
    ' position picture
    With p2
        .Top = t2
        .Left = l2
        .Width = w2
        .Height = h2
    End With
    Set p2 = Nothing

End Function

最佳答案

每当您重新计算工作表时,该功能就会运行,这在您处理工作表时会经常发生。当您在那里工作时,它会将图像放在源表上,因为您正在设置 p1p2反对ActiveSheet .

试试这些:

Set p1 = ThisWorkbook.Worksheets(TargetSheet).Pictures.Insert(URL1)


Set p2 = ThisWorkbook.Worksheets(TargetSheet).Pictures.Insert(URL2)

您可能还希望将计算设置为手动,这样您就不会在每次更改单元格值时删除并重新插入图像:
Application.Calculation = xlCalculationManual

关于image - Excel VBA自定义函数从URL故障插入图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205146/

相关文章:

android - 旋转图像文件而不更改文件大小

python - 使用 qdbmp 读取.bmp 图像

vba - 如何在 Microsoft Visual Basic for Applications 7 中查找 XLA 文件的路径

vba - 嵌套宏不循环

javascript - 函数局部变量中 JavaScript 范围的总和

android - WebView + Blob URL + 下载图片

excel - VBA:如何引用组合框对象

javascript - 预期数字,但返回字符串

javascript - 我不知道这段代码是什么

java - 如何在Java中创建一个巨大的.png加入较小的.png?