コンテキスト:プロシージャを実行し、戻り値を持つワークシートを記入するためのフィルタがいくつかあるユーザーフォームをコーディングしています。リストボックスはExcelのユーザーフォームで何とかNullに設定されています
私のフィルタに問題があります。私は縮小バージョンで問題を再現することができました。このフィルタは、選択されたコンボボックスのオプションに基づいて、リストボックスにデータをロードする必要がありますUserForm1
、ListBox1
とComboBox1
:
私は、構成要素である、何の名前を変更しませんでした。
マイ壊れコード(コメント):
Option Explicit
'sub that fill data in the list box columns
Sub loadList(list As ListBox, id As Integer)
list.Clear
If (id > 0) Then
list.AddItem
list.Column(0, 0) = "Item 1"
list.AddItem
list.Column(0, 1) = "Item 2"
End If
End Sub
'event that will trigger the loadList sub
Private Sub ComboBox1_Change()
Dim id As Integer
id = ComboBox1.ListIndex
loadList ListBox1, id
End Sub
'the combo options is auto initialized
Private Sub UserForm_Initialize()
ComboBox1.AddItem
ComboBox1.Column(0, 0) = "Option 1"
ComboBox1.AddItem
ComboBox1.Column(0, 1) = "Option 2"
End Sub
私はbrekpointを設定すると、私は問題を見ることができます。 ListBox1
がNull
に設定されているが、私はそれを回避する方法がわからない:
エラーは言う:
実行時エラー「13」:型の不一致を
しかし、ListBox1
は何とかNull
に設定されているため、明らかです。
誰もこの行動を経験したことがありますか?それを回避するには?前もって感謝します。
@Fadi。何も変更されていません。上の1行をブレークポイントに設定すると、 'ListBox1'も' Null'ですが、 'Sub loadList'呼び出しの前にエラーが発生していると思います。 –