2016-06-02 4 views
1

두 개의 목록 상자가 있는데 하나는 왼쪽에, 한 번은 오른쪽에 있습니다. 이상적으로 사용자가 왼쪽 목록 상자에서 원하는 데이터를 선택할 수있게하고 두 번째 목록 상자에 표시되도록 선택한 항목에 대해 "추가"버튼을 누르십시오.을 선택하는 순서대로 .VBA에서 선택한 ListBox 항목의 순서를 가져 오는 중입니까?

Item 2 
Item 23 
Item 17 

을 지금은 항목 2를 클릭하여 사용자가 얻을 수있는 반면 : 그들은 첫 번째 항목이, 다음 항목 23초 및 항목 17 번째를 선택하면

, 나는 오른쪽에있는 목록 상자 표시 할 , Add (컴파일러가 목록 항목을 순환하고 두 번째 목록에 선택한 항목 넣기), 23 번 항목 추가, Add ... 등등을 차례로 진행하여 프로세스를 좀 더 자동화하고 싶습니다. 목록 상자의 "Selected"속성은 부울 배열입니다.

나는 this 우연히,하지만 jQuery를, 그리고 그것에 대해 제일 먼저 모르는 :

생각을? 선택 순서를 기억하는 컴파일러를 얻을 수있는 방법이 있습니까?

답변

1

컬렉션을 사용하여 선택한 색인을 추적 할 수 있습니다.

Dim selectedIndices As New Collection

그런 다음 목록 상자 선택 또는 선택 해제 사용 추가() 또는의 왼쪽 목록 상자에서 항목의 상태에 따라 기능

selectedIndices.Add(index) 
selectedIndices.Remove(index) 

) (제거합니다. 그런 다음 목록 상자의 선택된 속성을 사용하는 대신 컬렉션을 반복하여 순서대로 추가하십시오.

+0

이것은 정말 도움이되었습니다. 감사합니다! 따라서 왼쪽의 목록 상자에서 항목이 30 개의 홀수 항목 중에서 임의로 선택되면 색인을 어떻게 얻을 수 있습니까? 각 항목의 bool 값을 검사하여 인덱스를 가져올 때마다 매번 항목을 반복해야합니까? –

+0

어떤 특정 항목이 선택되었는지 알 수있는 클릭 이벤트와 함께 전달되는 인덱스 또는 개체가 있어야하며, 별도의 이벤트가있는 별도의 개체 인 경우 해당 개체에서 어떤 이벤트가 발생했는지 알 수 있습니다. 행사. – AndrewK

관련 문제