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

我试图插入一个图片到工作表使用VBA,我可以稍后引用的名称(例如删除,或隐藏)。

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

ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _ savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50 

然而,我正在努力将图片分配给一个形状(或其他对象),以便我可以命名它,并在以后参考它。 例如

 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 

但是,我收到set shp = ...行的语法错误

我也试过: Dim shp As Excel.ShapeDim shp As Object根据SOpost中的注释: VBA插入embedded图片excel但仍然得到语法错误。

我哪里错了?

从方法返回值时,您需要使用圆括号:

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