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培训的来源。

本技巧(10037)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: