2016-09-29 3 views
0

, поэтому я пишу основной скрипт, и кнопка переключения продолжает давать мне ошибку во время выполнения, когда я выбираю макрос. В основном, то, что я хочу сделать, это переключить вычисления Manuel on и on, потому что есть тонна формул и когда вводятся новые данные, автоматическое обновление берет навсегда, и это становится проблемой, поэтому я хотел использовать это. Он работал в прошлом, но по какой-то причине он не работает. Я как бы новичок в этом, и любая информация поможет.Ошибка выполнения - кнопка Toggle

Private Sub Workbook_Open() 

Application.Calculation = xlCalculationAutomatic 
Worksheets("Schedule").CommandButton1.Caption = "Auto Calc: ON" & Chr(10) & "[Click to Toggle]" 
ClacState = False 


End Sub 
+2

Что ошибка во время выполнения на самом деле сказать? –

+2

'ClacState' выглядит так, как будто написано неправильно. Компилятор может автоматически ловить ошибки, подобные этому, если вы используете 'Option Explicit' – xidgel

+0

Что такое' ClacState'? Я просто знаю о [Application.CalculationState] (https://msdn.microsoft.com/en-us/library/office/ff196047.aspx). – Ralph

ответ

0

следующее (более подробный) код, который вы должны быть в состоянии идентифицировать проблему:

Option Explicit 

Private Sub CommandButton1_Click() 

Dim ws As Worksheet 
Dim Obj As OLEObject 
Dim bolFound As Boolean 
Dim ClacState As Boolean 

Application.Calculation = xlCalculationAutomatic 

'Verify that the sheet exists 
bolFound = False 
For Each ws In ThisWorkbook.Worksheets 
    If ws.Name = "Schedule" Then bolFound = True 
Next ws 
If bolFound = False Then 
    MsgBox "The is no such sheet `Schedule`." & Chr(10) & "Aborting..." 
    Exit Sub 
End If 

'Verify that there is a button by that name 
bolFound = False 
For Each Obj In ThisWorkbook.Worksheets("Schedule").OLEObjects 
    If Obj.Name = "CommandButton1" And TypeName(Obj.Object) = "CommandButton" Then bolFound = True 
Next Obj 
If bolFound = False Then 
    MsgBox "The is no such button `CommandButton1` on the sheet `Schedule`." & Chr(10) & "Aborting..." 
    Exit Sub 
End If 

Worksheets("Schedule").CommandButton1.Caption = "Auto Calc: ON" & Chr(10) & "[Click to Toggle]" 

End Sub 
Смежные вопросы