Vba Excel宏会放置图像,但其他人打开工作簿时不会显示这些图像

Vba Excel宏会放置图像,但其他人打开工作簿时不会显示这些图像,vba,excel,macros,Vba,Excel,Macros,我一直在努力工作,拼命地从互联网上找到的东西中拼凑出一个巨大的宏来完成我的工作。最终目的是形成报告的格式 这部分代码从单元格中获取值,并在给定文件夹中找到分别命名的图像文件,然后将图像“插入”到某个单元格中。(我知道从技术上讲,它不是插入,但仍然是。) 问题是其他人需要查看这些报告,但当我将工作簿发送给他们时,图像不会显示。我不知道如何纠正这一点,这是一件大事。我求你了,请帮我想出一个办法,这样其他员工就可以看到这些图片了!我的工作可能就靠它了!:( Dim pictureNameColumn作

我一直在努力工作,拼命地从互联网上找到的东西中拼凑出一个巨大的宏来完成我的工作。最终目的是形成报告的格式

这部分代码从单元格中获取值,并在给定文件夹中找到分别命名的图像文件,然后将图像“插入”到某个单元格中。(我知道从技术上讲,它不是插入,但仍然是。)

问题是其他人需要查看这些报告,但当我将工作簿发送给他们时,图像不会显示。我不知道如何纠正这一点,这是一件大事。我求你了,请帮我想出一个办法,这样其他员工就可以看到这些图片了!我的工作可能就靠它了!:(

Dim pictureNameColumn作为字符串
Dim picturePasteColumn作为字符串
作为字符串的Dim pictureName
暗淡的最后一张照片越长越好
朦胧的画面如长
Dim pathForPicture作为字符串
pictureNameColumn=“A”
picturePasteColumn=“B”
pictureRow=4
lastPictureRow=单元格(Rows.Count,pictureNameColumn).结束(xlUp).行
pathForPicture=“C:\Users\desid\reportimages\”

Do While(pictureRow如果用户必须运行宏,那么问题就来自于此:
If(Dir(pathForPicture&pictureName&“.jpg”)vbNullString)如果无法访问文件路径,则
将返回
False
。请尝试查找一个公用文件夹以将图片放入其中。我没有解决您的问题的方法,但至少现在您知道问题来自何处。

如果必须运行宏,则问题来自:
If(Dir(pathForPicture&pictureName&“.jpg”)vbNullString)如果无法访问文件路径,则
将返回
False
。请尝试查找一个公用文件夹以将图片放入其中。我没有解决您的问题的方法,但至少现在您知道问题的根源。

请尝试使用此方法嵌入图片,而不是使用
ActiveSheet.pictures.Insert插入图片。请尝试使用此方法嵌入图片因此请注意,单元格不接受字母作为列名,它需要列数,因此“A”变为1:

Dim repPic as Shape
Dim pictureNameColumn As Long
Dim picturePasteColumn As Long
Dim Lft as Single
Dim Tp as Single
Dim Wdth as Single
Dim Hgth as Single
pictureNameColumn = 1
picturePasteColumn = 2
Lft = Cells(pictureRow, picturePasteColumn).Left + 30
Tp = Cells(pictureRow, picturePasteColumn).Top + 3
Wdth = Cells(pictureRow, picturePasteColumn).Width
Hgth = Cells(pictureRow, picturePasteColumn).Height
Set repPic = Application.ActiveSheet.Shapes.AddPicture(pathForPicture & pictureName & ".jpg", False, True, Lft,Tp,Wdth,Hgth)
这将允许您将图片保存在文件本身中。您必须了解如何使用wdth和hgth计算图片的大小,因为使用此方法,您必须在插入图片时指定宽度和高度。我建议的解决方案在代码中,但它可能不适用于您的设置


希望这有帮助,如果有,请将答案标记为已接受。祝你好运!

而不是使用
ActiveSheet.Pictures插入图片。插入
,尝试使用此方法嵌入图片。还请注意,单元格不接受字母作为列名,它需要列数,以便“A”变为1:

Dim repPic as Shape
Dim pictureNameColumn As Long
Dim picturePasteColumn As Long
Dim Lft as Single
Dim Tp as Single
Dim Wdth as Single
Dim Hgth as Single
pictureNameColumn = 1
picturePasteColumn = 2
Lft = Cells(pictureRow, picturePasteColumn).Left + 30
Tp = Cells(pictureRow, picturePasteColumn).Top + 3
Wdth = Cells(pictureRow, picturePasteColumn).Width
Hgth = Cells(pictureRow, picturePasteColumn).Height
Set repPic = Application.ActiveSheet.Shapes.AddPicture(pathForPicture & pictureName & ".jpg", False, True, Lft,Tp,Wdth,Hgth)
这将允许您将图片保存在文件本身中。您必须了解如何使用wdth和hgth计算图片的大小,因为使用此方法,您必须在插入图片时指定宽度和高度。我建议的解决方案在代码中,但它可能不适用于您的设置


希望这有帮助,如果有,请将答案标记为已接受。祝您好运!

他们是否有权访问路径
“C:\Users\desid\reportimages\”
?这可能是问题的根源。此外,您的代码似乎不完整,它遗漏了一些
End If
Do的结尾,而
哦!我希望路径不重要,手动插入图片的方式也不重要。我想我可以将所有照片上载到外部源并进行链接通过这种方式编辑,但我希望它可以通过宏嵌入。我可能误解了您的问题。您是否让此宏执行操作,然后保存文件并将其发送给同事?或者如果他们必须自己运行宏,则他们会运行宏,然后将其发送给其他人。我已为每个人编辑了宏/工作簿,以便e path指向他们计算机上的图像文件夹。非常感谢您的帮助。我似乎找不到一个可以保存文件名的外部上传位置,或者我很乐意这样做。他们有权访问路径
“C:\Users\desid\reportimages\”
?这可能是问题的根源。此外,您的代码似乎不完整,它遗漏了一些
End If
Do的结尾,而
哦!我希望路径不重要,手动插入图片的方式也不重要。我想我可以将所有照片上载到外部源并进行链接通过这种方式编辑,但我希望它可以通过宏嵌入。我可能误解了您的问题。您是否让此宏执行操作,然后保存文件并将其发送给同事?或者如果他们必须自己运行宏,则他们会运行宏,然后将其发送给其他人。我已为每个人编辑了宏/工作簿,以便e path指向他们计算机上的图像文件夹。非常感谢您的帮助。我似乎找不到一个外部的上传位置来维护文件名,或者我很乐意这样做。谢谢!是的,我确实认为这就是问题的根源。我希望通过其他嵌入方式来纠正此问题。谢谢!是的,我确实认为这就是问题的根源。我希望通过其他方式来纠正这个问题