2014-04-22 48 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