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