我在Windows上写了一个VBA宏。此宏根据单元格的值将图片添加到我的Excel工作表中,例如'image.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中的一个错误吗?
答案 0 :(得分:1)
在此处留下答案,以防万一有人用VBA(像我一样)将头撞到墙上试图将多张图片插入到Mac版Excel中时仍然找到此页面。我在此站点上找到了GrantAccessToMultipleFiles帮助,终于为我修复了它: https://warwick.ac.uk/fac/sci/systemsbiology/staff/dyer/software/excelvbafileopen/
答案 1 :(得分:0)
Mac不使用与Windows相同的路径分隔符(或者甚至彼此使用)。将代码更改为:
ActiveSheet.Shapes.AddPicture _
Application.ActiveWorkbook.Path & Application.PathSeparator & c.Value, _
msoFalse, msoTrue, 500, clTop, 140, 140