2014-04-22 72 views
-2

我在學校的VBA作業中遇到了特殊問題。我遇到的問題是當Excel嘗試在特定工作簿上啓動時運行代碼時,VBA給我一個編譯錯誤。它一直告訴我,代碼不能在程序之外運行,但我不知道爲什麼它告訴我什麼時候需要在文檔開始時運行。這是我說的投擲的錯誤幾乎是最後的代碼...Excel VBA程序錯誤

Option Explicit 
Worksheets("StartPage").Activate 
Worksheets("Payroll").Protected 
cmdDisplay.Enabled = False 
cmdEmpData.Enabled = False 
cmdEmployees.Enabled = True 
cmdReset.Enabled = True 
Public intNumEmp As Integer 

前的第一子程序運行,其中,除了變量,拋出的錯誤代碼運行。我是否應該在他們面前修改訪問修飾符來解決問題,或者是否有其他缺失的內容?

+3

可以在過程之外聲明變量,但你不能執行的功能,改變屬性或賦值給變量。除了intNumEmp的聲明之外,請嘗試將其餘的東西放入工作簿打開過程中。 –

回答

2

@RonRosenfeld是正確的,這裏是代碼將是什麼樣子放在ThisWorkbook模塊的內部:

Option Explicit 
Public intNumEmp As Integer 

Private Sub Workbook_Open() 
    Worksheets("StartPage").Activate 
    Worksheets("Payroll").Protected 
    cmdDisplay.Enabled = False 
    cmdEmpData.Enabled = False 
    cmdEmployees.Enabled = True 
    cmdReset.Enabled = True 
End Sub 

enter image description here