如何通过VBA复制隐藏工作表并让新复制的工作表不隐藏?
解决复制隐藏工作表后新表自动显示的问题
这事儿挺常见的——Excel的Copy方法默认会继承原工作表的所有属性,包括可见性状态,所以你复制隐藏的Sheet6后,新表自然也是隐藏的。咱们只需要在复制操作后,手动把新工作表的可见性改成显示状态就行。
给你两种靠谱的写法:
方法一:直接引用复制后的新工作表对象(推荐)
这种方式更稳妥,因为它直接捕获Copy方法返回的新表对象,不用担心工作表计数临时变化的问题:
Sub CopySheet() Dim newSheet As Worksheet ' 复制隐藏工作表,并将新表对象赋值给newSheet Set newSheet = Sheet6.Copy(After:=Sheets(Sheets.Count)) ' 将新表设置为可见 newSheet.Visible = xlSheetVisible End Sub
方法二:通过工作表索引定位新表
如果你的场景里不会同时有其他工作表被新建,也可以直接定位最后一张表来设置可见性:
Sub CopySheet() Sheet6.Copy After:=Sheets(Sheets.Count) ' 把最后一张工作表设为可见 Sheets(Sheets.Count).Visible = xlSheetVisible End Sub
补充小细节
xlSheetVisible是Excel内置的常量,代表工作表可见状态,你也可以直接用数字-1来替代它,效果完全一样。
内容的提问来源于stack exchange,提问作者Elvis
相关产品推荐
相关产品推荐

