내 사용자 정의 폼에있는 두 목록 상자간에 "항목"을 관리하고 교환하려고합니다. I.E. 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을 채우는 최초의 "방법"에 충실하고 싶습니다.
다음은 작동하는 코드입니다. 나는 (I 쉽게 참조 할 수 있도록 코드 줄 번호가 있습니다) 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 행을 사용하거나 사용하지 않고 코드를 시도했지만 행운은 없습니다.
도움이 될 것입니다.
찾고있는 게시물에 대해 유감스럽게 생각합니다. 너무 적은 세부 정보를 제공하는 것이 더 좋습니다.
감사합니다. Sobigen 및 sktneer. 당신이 제안한 솔루션은 완벽하게 작동합니다! 나는 "엔트리"가 범위로 선언되어야한다고 생각했다. – IzakG