在VBA中删除工作表的图片(Microsoft Excel)
Rob写了一个他从工作表中删除图片的问题。他具有将图片(签名)添加为形状的宏,但是后来当他尝试删除图片时,他在Shapes集合中找不到它。
有几件事要检查。首先,您应确保使用正确的语法进行删除。检查以确保您在代码中明确包含工作表对象。
例如,以下行将不起作用:
Shapes(1).Delete
相反,您必须使用类似于以下任何行的代码来指定工作表:
ActiveSheet.Shapes(1).Delete Sheets("Sheet1").Shapes(1).Delete Sheets(1).Shapes("Signature").Delete
如果确定所需的图像不在Shapes集合中,则Excel(出于奇怪的原因,只有Excel知道)可能会将图像移动到其他集合,例如Pictures集合。如果您怀疑这一点,请尝试使用以下宏:
Sub WhatAmI() Dim sTemp As String sTemp = "You selected this type of object: " & TypeName(Selection) sTemp = sTemp & vbCrLf sTemp = sTemp & "It's name is " & Selection.Name MsgBox sTemp End Sub
选择签名图像,然后运行宏。您应该看到一个消息框,指示您选择的对象的类型及其名称。
然后,您可以使用该信息来修改宏,以便根据需要删除该图像。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2480)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: