Лоуэлл разработал макрос для копирования данных выбранных ячеек в определенное место на другом листе. Некоторые из исходных ячеек содержат изображения, и он хотел бы, чтобы эти изображения также были скопированы. Лоуэлл задается вопросом, как заставить макрос распознавать, находится ли изображение в исходной ячейке, а затем копировать изображения на новый рабочий лист вместе с данными.

Если вы используете метод Copy с объектом Selection, вы можете скопировать все, включая изображения, из источника в цель. Рассмотрим следующий короткий макрос:

Sub CopyPict()

Sheets("Sheet1").Select     Range("B3:F7").Select     Selection.Copy     Sheets("Sheet3").Select     Range("H8").Select     ActiveSheet.Paste End Sub

Предполагая, что некоторые из ячеек в исходном диапазоне (B3: B7 на Sheet1) содержат изображения, тогда метод Paste вставит их в целевой (ячейка H8 на Sheet3). Фактически, этот метод аналогичен использованию копирования и вставки информации вручную.

Если вы идентифицируете и перемещаете информацию другим способом (возможно, используя промежуточную переменную вместо копирования в буфер обмена), то вполне возможно, что изображения не копируются.

Если вам нужно выполнить некоторую обработку данных перед их вставкой в ​​целевую ячейку, вы можете использовать метод Paste, как показано выше, а затем обработать данные и поместить их обратно в целевую ячейку. Это позволит не искажать изображения цели.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

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

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

Этот совет (11333) относится к Microsoft Excel 2007 и 2010. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Copying_Pictures_with_a_Macro [Копирование изображений с помощью макроса].