2016-08-08 1 views
0

VBAで動作するリストボックスを取得する際に問題が発生しています。私は何が足りないのか分かりません。 ListBox1というリストボックスを作成しました。Listbox AddItemエラー

次のように私はプログラムを書いた:

Sub ListBox1_Change() 
    Dim ListBox As Object 

    With Listbox1 
     .AddItem = "Yes" 
     .AddItem = "No" 
    End With 
End Sub 

プログラムは.AddItem = "No"行で失敗します。私はObject Variable or With Block Variable not setエラーが発生します。

+1

が必要だと思います。 'With Listbox1'を使うだけであれば、Listbox1はアクティブシート上にある必要があります。コードが標準モジュール内にある場合は、リストボックスを含むシートまたはユーザーフォームを指定する必要があります: 'With Sheets(" Sheet1 ").Listbox1'またはWith UserForm1.Listbox1 – tigeravatar

+0

また、' = '記号はありません'.Additem'メソッドを使用すると、 – tigeravatar

+0

changeイベントはアイテムをそれ自身に追加し、新しいchangeイベントをアクティブにします。イベントをブロックするグローバル変数を持つブール条件を追加する必要があります。 –

答えて

1

なぜ変更イベントで同じリストボックスにアイテムを追加しているのかわかりません。ただし、コードに構文エラーがあります。リストボックスに項目を追加すると、=はありません。これを見てください。

With Listbox1 
    .AddItem "Yes" 
    .AddItem "No" 
End With 

Dim ListBox as Objectも削除してください。あなたはそれを必要としません。

あなたが別のリストボックスに追加することを計画しているなら、私はあなたが実際のリストボックスオブジェクトに、あなたのリストボックス変数を設定することはありません。この

Sub ListBox1_Change() 
    With ListBox2 '<~~ Replace this with the other listbox name 
     .AddItem "Yes" 
     .AddItem "No" 
    End With 
End Sub 
+0

お返事ありがとうございます!私は等号を削除しました。私は正しいワークシートでそれを参照し、Dimステートメントを取り除いた。 Form対Active Xのコードを書く方法が混乱していましたが、今はすべて理解していると思います。私は1つの出力、すなわち1,2,3を参照してください。それをちょっと微調整した後、Active X controls Betterが気に入っています。再度、感謝します! – Tanye77