Роб написал о проблеме, с которой он столкнулся с удалением изображений с рабочего листа. У него есть макросы, которые добавляют изображение (подпись) в качестве формы, но когда он позже пытается удалить изображение, он не может найти его в коллекции 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), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10037) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Removing_Pictures_for_a_Worksheet_in_VBA [Удаление изображений для рабочего листа в VBA].