我正在尝试捕获从另一个工作簿复制到工作簿中的工作表。
Workbook_NewSheet
从另一个工作簿复制工作表时不会触发事件。只有当用户通过(插入->工作表菜单选项)手动插入它们,或者当您通过 VBA 添加新工作表时,才会触发它ThisWorkbook.Worksheets.Add
。
我试图捕捉的基本上是一个粘贴操作,它会产生一个新的工作表。
这可能来自以下任何用户操作:
- 用户通过按住 Control 键拖动现有工作表(添加新工作表)来复制现有工作表
- 用户从另一个工作簿复制工作表
- 用户从另一个工作簿中移动了工作表
或以下任何 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 中捕获此动作/宏结果的任何方法,那将非常有帮助。
请注意,我不想避免这样的用户操作(所以我不想保护工作簿),但我想以编程方式处理粘贴的工作表以验证数据,如果类似的工作表已经存在,则更新现有工作表而不是在两张纸上拥有相同的数据。