Я пытаюсь записать рабочие листы, копируемые в рабочую книгу, из другой рабочей книги.
Событие Workbook_NewSheet
не запускается, когда листы копируются из другой рабочей книги.
Он запускается только в том случае, если пользователь вручную вставляет их через (пункт меню «Вставка» -> «Рабочий лист») или когда вы добавляете новый лист через VBA как ThisWorkbook.Worksheets.Add
.
То, что я пытаюсь захватить, - это в основном операция вставки, которая приводит к созданию нового листа.
Это может быть одно из следующих действий пользователя:
- Пользователь копирует существующий лист, перетаскивая его, удерживая клавишу управления (которая добавляет новый лист)
- Пользователь копирует листы из другой рабочей книги
- пользователь переместил листы из другой рабочей книги
или любой из следующих кодов VBA:
SourceWorkbook.Sheets(“SourceSheet”).Copy Before:=TargetWorkbook.worksheets(“SheetNameIn Target”) 'copy across workbook'
SourceWorkbook.Sheets(“SourceSheet”).Move Before:=TargetWorkbook.worksheets(“SheetNameIn Target”) 'move across workbook'
ThisWorkbook. Sheets(“SheetName”).Copy 'copy within workbook'
Если вам известен какой-либо способ получения результатов этого действия / макроса в VBA, это было бы очень полезно.
Обратите внимание, что я не хочу избегать таких действий пользователя (поэтому я не хочу защищать книгу), но я хочу обработать вставленный лист программно для проверки данных, и если подобный лист уже существует, обновите существующий лист вместо того, чтобы иметь одинаковые данные на двух листах.