它看起来像一个Excel错误:我想复制一个Excel工作表并使用命令按钮导出它,同时删除副本上的命令按钮,并使用以下代码(不删除相关代码):
Application.ScreenUpdating = False
N = Sheets.Count
Sheets("XYZ").Copy After:=Sheets(N)
''''' Sheets("XYZ").Select ''''' leads to an error - see below
Sheets(N + 1).Unprotect
Sheets(N + 1).Shapes.Range(Array("Button 1")).Delete
Application.CutCopyMode = False
Sheets(N + 1).Move ' creates and activates a new workbook
Application.ScreenUpdating = True
问题是模板应该使用按钮返回到“XYZ”表。但是,无论我尝试什么(包括DoEvents和错误捕获!),Excel总是会尝试删除受保护模板上的相同按钮 - 导致错误(“命令不能在受保护的工作表中使用...”)。
如果选择了任何其他模板,则不会出现该错误。 注意:由于模板有时会隐藏工作表,因此将复制的工作表添加为最后一个工作表会更简单,因此模板在移动复制工作表时会返回到最后一个工作表。
有没有解决方法让模板返回到所需的宏按钮的工作表“XYZ”而不会产生错误?