나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 코알라 (sis0351)

추천:  2
파일:     조회:  3964
제목:   [RE]vba 콤보박스중 중복제거를 하려하는데 도움이 필요합니다.
     
  Private Sub ComboBox1_DropButtonClick()
        Dim 본부() As String
        Dim i      As Long
        Dim k      As Long
        Dim c      As Range
        Sheet1.ComboBox1.Clear
        i = Sheet2.Range("A1").End(xlDown).Row
        With CreateObject("Scripting.Dictionary")
             For Each c In Sheet2.Range("A2:A" & i)
                 If Not .Exists(c.Value) Then
                   .Item(c.Value) = Empty
                    ReDim Preserve 본부(k)
                    본부(k) = c.Value
                    k = k + 1
                 End If
             Next c
        End With
        Sheet1.ComboBox1.List = 본부
End Sub
 
[불량 게시물 신고]  
김원호감사합니다. 엄청난 도움이 되었습니다.
With CreateObject("Scripting.Dictionary")          1
    For Each c In Sheet2.Range("A2:A" & i)         
        If Not .Exists(c.Value) Then               2
          .Item(c.Value) = Empty                   3
           ReDim Preserve 본부(k)                  4
           본부(k) = c.Value
           k = k + 1
        End If
    Next c
End With

이글을 보신다면 1,2,3,4d의 해석좀 부탁드리겠습니다..
10-11 (23:27)
삭제 ■신고
코알라안녕하세요. 김원호(님)
1~3) http://thesky.tistory.com/79 ;( 잘 정리해 놓으셨네요.)
참조해 보세요.
4) ReDim Preserve 배열의 값을 유지하면서 배열의 크기를 늘린다고 보시면 됩니다.

< 2차원 배열시>
ReDim Preserve 본부(1 to k , 1 to 1)  <행으로는 사용 불가>
ReDim Preserve 본부(1 to 1 , 1 to k)  <열은 사용가능>
10-12 (00:03)
삭제 ■신고
        
  

작성일 : 2017-10-11(22:57)
최종수정일 : 2017-10-11(22:58)
 


 ◎ 관련글

  제 목   작성자   날짜
vba 콤보박스중 중복제거를 하려하는데 도움이 필요합니다. 김원호 2017-10-11
[RE]vba 콤보박스중 중복제거를 하려하는데 도움이 필요합니다. 코알라 2017-10-11