VBA Excel将图片添加到工作表

我发现了一些有助于将图片插入工作表的代码,但是用户必须select插入哪个图片。 我希望能够select一个特定的图片(特别是公司的标志)并插入它。 代码如下:

PicLocation = Application.GetSaveAsFilename("C:\Work\test_Project\", "CA_Value_AVM, *.jpg", 1) If PicLocation <> "" Then ActiveSheet.Pictures.Insert(PicLocation).Select Else Exit Sub End If 

这个代码在点击一个button时执行。 用户单击它,然后打开path“C:\ Work \ test_Project \”,用户必须单击图片。 我需要这个改变,以便用户不要点击任何东西。

它应该作为:

 ActiveSheet.Pictures.Insert("C:\Work\test_Project\myjpgfile.jpg").Select 

因为这是所有的function正在返回。

我知道这是在4年前问的,但是我想继续在这里更新答案,以便操作人员和未来的search者(比如我自己)可以有更完整的答案。

jonsca的答案是适当的,将工作,但如果电子表格被移动你的照片将无法正常工作。 本质上, ActiveSheet.Pictures.Insert embedded图像,这意味着如果源图像或电子表格被移动,链接将中断,图像将不会显示(不像OP最初询问的那样对公司电子表格不太好)。

但是,如果你想要一个图片工作时移动/发送/等。 您可以使用:

 ActiveSheet.Shapes.AddPicture("C:\Work\test_Project\myjpgfile.jpg", False, True, 1, 1, 1, 1) 

看到这个职位的定位和东西更多的一些解释。

(感谢PaulStock的原始post)