2
我在Access窗體中有一些vba代碼,在以下情況下調用時會產生「ByRef參數類型不匹配」錯誤。ByRef參數類型與布爾值不匹配
我有一個小功能
NullAndHide(ctl as control,displayitem as Boolean)
如預期時,我把它稱爲像這樣其中工程。
Call NullAndHide(Me.Control,True)
但是,如果我用下面的case語句來嘗試設置displayitem的基於另一個控制值:
Dim PerPersonOption, PerRoomOption As Boolean
Select Case PriceType_ID
Case Is = 1 'Per Person
PerPersonOption = True
PerRoomOption = False
Case Is = 2 'Per Room
PerPersonOption = False
PerRoomOption = True
End Select
然後
Call NullAndHide(Me.Control,PerPersonOption)
我得到的錯誤:
ByRef參數類型不匹配
我測試了PerPersonOption的值與
msgBox PerPersonOption
它返回正確的布爾值。
我的函數期望一個布爾值,我給它一個布爾值 - 那麼爲什麼我會得到這個錯誤?
的確,但你更好的只是把每個變量聲明與它自己昏暗的它自己的路線。我已經看到這些Dim快捷鍵出錯了很多次,最好避免它的陷阱。 –
謝謝Simco! 我的理解是Dim x,y as z會聲明兩者都是z。我已經明確暗示每個選項,並按預期工作。不是每個捷徑都是最後的捷徑,它會出現。我會按照你和卡爾的建議,明確地聲明每個變量並在它自己的行中。 – Istari
@Istari每個Dim的一行並不是必須的,只要記住總是將Dim var1作爲typeA,var2作爲typeB,...' –