我有一个大工作簿,其中有许多用于背景计算的工作表,我在不使用时会隐藏它们。工作簿被锁定(没有功能区,工作表标签,公式栏等),因此在使用时不会被篡改。
在Excel 2010中,一切进展顺利且活动工作表未更改,但现在在Excel 2016中,以下Sub将活动工作表更改为“CompCalc”工作表,使用户无法返回到所需的工作表继续使用工作簿。
Sub MakeSheetsVisible(Status As Boolean)
Dim VarSubName As String
VarSubName = "MakeSheetsVisible"
'***********************************************************
ProtectSheets (False)
Sheets("DATA_INPUT").Visible = Status
Sheets("RAW_DATA").Visible = Status
Sheets("MASTERHISTORY").Visible = Status
Sheets("CompCalc").Visible = Status
'Sheets("Event_Enter").Visible = Status
Sheets("Raw_Chart_Data").Visible = Status
End Sub
在Sub的末尾调用此Sub,从另一个Sub调用,可以通过按下按钮或ListView双击触发2种方式之一。当按钮用于调用初始Sub并且例程连续运行时(不通过F8逐步执行),活动表仅在上述例程中更改。
我可以通过检查例程开头的原始活动工作表并在结束时将其设置回原始工作来解决此问题,但我想知道为什么会发生这种情况以及是否有办法停止没有解决方法。任何帮助表示赞赏
答案 0 :(得分:0)
这是Excel 2013/2016中的一个烦人的错误,据我所知,没有修复。我使用的解决方法是:
Set CurrentSheet = ActiveSheet
'Instructions here
CurrentSheet.Activate
答案 1 :(得分:0)
我仅在需要特定功能时才使用活动工作表。 (根据MatthewD)
但是可以肯定的是,当您将所有工作表都设置为可见时,您可以添加另一行以使您想要激活的工作表吗?
Sheets("The one you want").Activate
会做这份工作吗? (或者可能是.select?)