我试图使用VBA将图片插入到工作表中,我稍后可以通过名称引用(例如删除或隐藏)。
我可以使用类似下面的代码插入图像:
ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _
savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50
但是,我努力将图片分配给一个形状(或其他对象),以便我可以命名并稍后引用它。 e.g。
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.Shape
,Dim shp As Object
根据SO帖子中的评论:VBA to insert embeded picture excel但仍然会出现语法错误。
我哪里错了?
答案 0 :(得分:5)
从方法返回值时需要括号:
set shp = ActiveSheet.Shapes.AddPicture(Filename:="image.jpg", linktofile:=msoFalse, _
savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50)