这是我的代码
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
但是所有工作表都要进行人工计算,是什么错误?
THX!
答案 0 :(得分:1)
您正尝试在应用程序级别更改计算。我猜你想用
ActiveSheet.EnableCalculation = True ' or False
答案 1 :(得分:0)
您设置为“计算”的值应为:xlCalculationManual
和xlCalculationAutomatic
,而不是xlManual
和x1automatic
答案 2 :(得分:0)
想一想你的 Sh 变量赋值。当 Sh 传递到Workbook_SheetActivate
事件宏时, 正在激活工作表。您无需将其设置为活动工作表。以下将始终将新激活的工作表的名称报告给立即窗口(包括新创建的工作表)。
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