【问题标题】:Excel VBA addPicture by path to imageExcel VBA addPicture by path to image
【发布时间】:2016-10-06 11:43:30
【问题描述】:

我在 Windows 上编写了一个 VBA 宏。此宏根据单元格的值将图片添加到我的 excel 工作表中,例如'图像.png'。这些图像与我的 Excel 工作簿位于同一目录中。 VBA 将获取工作簿的路径并使用它来查找单元格中指定的图像。这适用于 windows,但它不适用于 mac。宏返回错误 (1004) 说它找不到指定的文件。

Sub InsertImage()
    Dim useless As Double
    Dim clTop As Double
    For Each c In ActiveSheet.Range("C3:C200").Cells
       If c.Value = "" Then
           useless = 1
       Else
           Set cl = Range(c, c.Offset(0, 1))
           clTop = cl.Top
           ActiveSheet.Shapes.AddPicture _
           Application.ActiveWorkbook.Path & "\" & c.Value, _
           True, True, 500, clTop, 140, 140
       End If
    Next
    End Sub

更新:

做了一些测试:当我第一次手动添加我要添加的所有图片,然后立即将它们全部删除,然后运行完全相同的宏,所有图片都完美导入。这可能是 Excel for Mac 中的错误吗?

【问题讨论】:

标签: excel vba macos


【解决方案1】:

在此处留下答案,以防有人在尝试使用 VBA 将多张图片插入 Excel for Mac(如我)撞墙时仍然找到此页面。我在这里找到了此站点上的 GrantAccessToMultipleFiles 帮助,终于为我修复了它: https://warwick.ac.uk/fac/sci/systemsbiology/staff/dyer/software/excelvbafileopen/

【讨论】:

    【解决方案2】:

    Mac 不使用与 Windows 相同的路径分隔符(甚至彼此也不相同)。把代码改成这样:

    ActiveSheet.Shapes.AddPicture _
               Application.ActiveWorkbook.Path & Application.PathSeparator & c.Value, _
               msoFalse, msoTrue, 500, clTop, 140, 140
    

    【讨论】:

    • 试过了,现在它在我的工作表上添加了一个带有红十字的空矩形,上面写着:'链接的图像无法显示。该文件可能已被移动、重命名或删除。验证链接是否指向正确的文件和位置。'
    • 可以在Mac上手动插入图片吗?如果是这样,请尝试在执行此操作时录制一个宏,并查看您获得的参数。
    • 我尝试手动添加其中一个,效果很好。然后当我再次运行宏时,除了之前手动添加的图片之外,它对所有图片都不起作用..
    • 做了一些测试:当我第一次手动添加我要添加的所有图片,然后立即将它们全部删除,然后运行完全相同的宏,所有图片都完美导入。这可能是 Excel for Mac 中的错误吗?
    • 听起来很像。是 2016 年还是 2011 年?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 2016-10-23
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多