Причина этого заключается в том, что метод .copy
просто сохраняет ссылку на скопированную ячейку, а не сохраняет ее текущие атрибуты (то есть текст и форматирование).
Только когда .paste
происходит, атрибуты скопированной ячейки считываются и применяются к ячейке вставки.
Именно поэтому, хотя .copy
встречается до ваших изменений, изменения все равно отражаются в .paste
.
Это не заметно при обычном использовании Excel, потому что как только вы вносите изменения в электронную таблицу, буфер обмена очищается, поэтому у вас нет возможности вставить после изменения скопированной ячейки.
Для подтверждения этого утверждения, если вы добавите Range("A1").Delete
до PasteData
, вы получите ошибку времени выполнения, поскольку ссылка .copy
теперь указывает на несуществующий объект.