3
我有以下代碼,我不知道爲什麼Excel在Test2()
子例程中看不到Enum
類型(我聲明) :Excel,Visual Basic編輯器,枚舉類型聲明 - 用戶定義類型未定義
Private Sub Test1()
Dim test_name As Variant
End Sub
Private Enum rlcRollercoasterState
rlcRollercoasterDisabled
rlcRollercoasterEnabled
rlcRollercoasterBroken
rlcRollercoasterMissing
End Enum
Private Sub Test2()
Dim var1 As Variant
Dim rlcRC1State As rlcRollercoasterState ' User-defined type not defined
End Sub
如果我複製Test1()
子程序Enum
類型聲明後,Excel識別在Test1()
的rlcRollercoasterState
類型。 如果我註釋掉Test1()
子例程,Excel將識別Test2()
中的rlcRollercoasterState
類型。
爲什麼Excel無法在Test2()
子例程中看到rlcRollercoasterState
類型?
非常感謝你,我不會想到這一點。我有一個理論問題:程序在運行之前是否需要編譯? (我的意思是,當我運行程序時,不是程序的_compilation_是_run_過程的一部分嗎? - 這意味着即使當我運行程序時,也應該顯示錯誤消息,而不僅僅是當我_compile_程序,我不太明白)。 – colemik 2013-03-22 01:23:14
如果您希望VBA僅根據需要編譯代碼,則可以選中Compile On Demand複選框。 VBA在運行過程之前編譯代碼。 http://books.google.co.in/books?id=n-2NtSJNHBYC&pg=PA47&lpg=PA47&dq=You+can+select+the+Compile+On+Demand+check+box+if+you+want+VBA+到+編譯+的+代碼+只+ AS +需要與源= BL&OTS = GHLiuIK82q&SIG = b_ub91b56s5OjwdfHtiDzMcOZPw&HL = EN&SA = X&EI = 3bVLUYzHDoWsrAeevYH4DQ&VED = 0CDEQ6AEwAA#v = onepage&q =你%20can%20select%第二十條%20Compile%20On%20Demand%20check%20box% 20if%20you%20want%20VBA%20to%20compile%第二十條%20code%20only%20AS%20needed&F =假 – 2013-03-22 01:35:35