私は、ユーザーフォームにある2つのリストボックスの間で "アイテム"の管理と交換を実現しようとしています。 I.私はListBox1(私は複数選択を使用する)の項目を持っているし、 "追加"コマンドボタンをクリックし、すべての項目がListBox2に追加されます。 - そのコードが動作します。私はまた、選択または "すべてクリア"コマンドボタンに基づいてListBox2から項目を削除することができます。リストボックス間のアイテムの追加と削除
"追加"コマンドボタンに "削除"コマンドボタンで使用される同様のコードを追加すると、エラーが発生します。私の目標は、ListBox1からアイテムを削除して、ListBox2でアイテムを再度追加または複製しないようにすることです。エラーは「実行時エラー」 - 2147467259(80004005) ':不明なエラーです。
私はソースに問題を絞り込んだが、解決方法はわからない。問題は、私がListBox1を埋める方法です。現在、名前付き範囲を使用してListBox1を設定していますが、この名前付き範囲はテーブル内の列を参照します。
MyUserForm.ListBox1.RowSource = "ListOfItems"
私は、次のコードを使用している場合、私は同じエラーを取得しないとすべてが正常に動作します。
With MyUserForm.ListBox1. .AddItem "Item 1" .AddItem "Item 2" .AddItem "Item 3" .AddItem "Item 4" End With
名前付き範囲は、ダイナミックかつ頻繁に変更する予定であると私は本当に、ListBox1をの移入の最初の「方法」に固執したいと思います。
ここには動作するコードがあります。私は(私は簡単に参照するためにコード行の番号が付けられている)ListBox2にアイテムを「追加」するためのコードをusethis:
(1)For i = 0 To LIstBox1.ListCount - 1 (2) If ListBox1.Selected(i) = True Then (3) ListBox2.AddItem ListBox1.List(i) (4) End If (5)Next
そして、ここではすでにされている私はLitBox1から項目を削除するために使用するコードですListBox2に追加:
(6)For i = ListBox1.ListCount - 1 To 0 Step -1 (7) If ListBox1.Selected(i) = True Then (8) ListBox1.Selected(i) = False (9) ListBox1.RemoveItem (i) (10) End If (11)Next
上記のエラーが(9)私はデバッグをクリックしたときにライン上にあります。私は8行目と8行目の両方でコードを試しましたが、運はありません。
ご協力いただきますようお願い申し上げます。
お探しのポストに申し訳ありませんが、あまりにも多くの詳細を与えるのが良いと思いました。
ありがとうSobigenとsktneer。あなたが提案したソリューションは完全に機能します!私は、 "エントリ"は範囲として宣言されるべきだと考えました。 – IzakG