我有一个vba宏来将图像添加到Excel文件中。添加文件的主要代码是......
Dim s As Shape
Set s = Application.ActiveSheet.Shapes.AddPicture(strFilename, msoFalse, msoCTrue, lngLeft, lngTop, -1, -1)
With s
.Height = 60
.Locked = True
End With
lngLeft和lngTop是代码中前面设置的坐标。
使用Application.FileDialog(msoFileDialogFilePicker)
使用以下代码填充strFilename ...
Dim fd As FileDialog
Dim objFile As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.ButtonName = "Select"
.AllowMultiSelect = False
.Title = "Choose a logo graphic ..."
.Filters.Add "Images", "*.gif; *.jpg; *.png; *.jpeg", 1
.FilterIndex = 2
.InitialView = msoFileDialogViewDetails
.Show
For Each objFile In .SelectedItems
strFilename = Dir(objFile, vbNormal)
Next objFile
问题:一切都在我的系统和我的同事以及另一个随机系统上完美运行。但是,当我们的客户端使用它时,他无法从Windows“图片”文件夹中选择图像。他可以从任何其他文件夹中选择它。他得到“运行时错误'1004':找不到指定的文件。”
开发和测试中使用的所有系统都是Windows 10,客户端使用的是Windows 7.此外,我们在使用Office 2010时使用的是Office 2016.
任何人都可以帮助解决此问题的原因和解决方法吗?
答案 0 :(得分:0)
我找到了似乎可以完成这项工作的解决方法。问题在于这段代码
strFilename = .SelectedItems(1)
当我添加一个消息框时,我发现strFilename只有文件名(例如:myimage.jpg)而没有完整路径。这似乎不会影响其在Windows 10上的Office 2016中的功能。但由于某些原因,Windows 7或Office 2010无法使用它。所以,我改变了生成文件路径+文件名字符串的方式,它工作正常。
foreach