如何testing一个activesheet

这是我的代码

Private Sub Workbook_SheetActivate(ByVal Sh As Object) Set Sh = ActiveSheet If ActiveSheet.Name = "Entrada" Then Application.Calculation = xlManual Else Application.Calculation = x1automatic End If End Sub 

但所有的床单都要手动计算,最新的错误?

谢谢!

只是想一想你的Shvariables赋值。 当Sh被传入Workbook_SheetActivate事件macros时,它就是被激活的工作表。 您不需要将其设置为活动工作表。 以下将始终将新激活的工作表的名称报告给立即窗口(包括新创build的工作表)。

 Private Sub Workbook_SheetActivate(ByVal Sh As Object) Debug.Print Sh.Name End Sub 

所以你的条件陈述可能会被收紧,

 Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Entrada" Then ' do something here Else ' do something else here End If End Sub 

您正试图在应用程序级别更改计算。 我猜你想使用

 ActiveSheet.EnableCalculation = True ' or False 

您设置为计算的值应该是: xlCalculationManualxlCalculationAutomatic ,而不是xlManualx1automatic

请参阅MSDN和此网站http://www.cpearson.com/excel/optimize.htm