使用VBA将图片插入(然后引用)到Excel中

Jon*_*nny 1 excel vba excel-vba

我正在尝试使用VBA将图片插入到工作表中,以后我可以通过名称引用(例如删除或隐藏).

我可以使用类似下面的代码插入图像:

 ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _
        savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力将图片分配给一个形状(或其他对象),以便我可以命名它,然后再引用它.例如

Dim shp As Shape
set shp = ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _
        savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50
shp.name = "myPicture"

... some code ...

ActiveSheet.Shapes("myPicture").Delete ' or similar code to later delete the image 
Run Code Online (Sandbox Code Playgroud)

不过,我对得到一个语法错误set shp = ...

我也试过:Dim shp As Excel.Shape,Dim shp As Object根据SO帖子中的评论:VBA插入嵌入图片excel但仍然得到语法错误.

我哪里错了?

Ror*_*ory 5

从方法返回值时需要括号:

set shp = ActiveSheet.Shapes.AddPicture(Filename:="image.jpg", linktofile:=msoFalse, _
        savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50)
Run Code Online (Sandbox Code Playgroud)