2017-04-10 1 views
0

두 열이있는 항목으로 목록 상자를로드하고 각 항목을 스프레드 시트와 대조하여 해당 항목이있는 경우 행을 선택하려고합니다.VBA Excel 다중 열 다중 선택 목록 상자에서 항목을 미리 선택하십시오.

결과는 고객 목록을로드하고 이미 메일 링리스트에있는 항목을 식별하고 선택하여 사용자가 선택 사항을 편집하고 업데이트 된 선택 사항으로 스프레드 시트를 업데이트 할 수 있도록합니다.

나는 목록 상자를로드 할 때 검사를 시도했지만 오류가 발생하여 문제가 명확 해 지므로 줄 아래 코드에서 오류가 발생합니다. CRM_Edit_Groups.ListBox1 (j)

CRM_Edit_Groups.ListBox1(j,0).Selected = True 
CRM_Edit_Groups.ListBox1(j,1).Selected = True 
CRM_Edit_Groups.ListBox1(j.row).Selected = True 
: 포함 .Selected = 진정한
나는 목록 상자뿐만 아니라 스프레드 시트에 대한 하나 하나 확인하는 루프를로드하기위한 코드를 포함 시켰습니다

With Rows(1) 
     Set c = .Find(What:=showgroup, LookIn:=xlValues, LookAt:=xlWhole) 
    End With 

    For i = 0 To wk.Sheets("temp").UsedRange.Rows.count + 1 
     code = wk.Sheets("temp").Range("a" & mycount) 
     company_name = wk.Sheets("temp").Range("b" & mycount) 

     CRM_Edit_Groups.ListBox1.ColumnCount = 2 
     CRM_Edit_Groups.ListBox1.ColumnWidths = "40;80" 
     CRM_Edit_Groups.ListBox1.AddItem 
     CRM_Edit_Groups.ListBox1.list(i, 0) = code 
     CRM_Edit_Groups.ListBox1.list(i, 1) = company_name 
     mycount = mycount + 1 
    Next 


    For j = 0 To Me.ListBox1.ListCount - 1 
     check = Me.ListBox1.list(j, 0) 
     With Columns(c.Column) 
      Set d = .Find(What:=check, MatchCase:=False) 
     End With 
     If Not d Is Nothing Then CRM_Edit_Groups.ListBox1(j).Selected = True 
     If Not d Is Nothing Then Set d = Nothing 
    Next 

, 내가 해봤 많은 조합

... 하지만 결과는 "런타임 오류 '424': Object required"가됩니다. 여기서는 행과 함께 작업하지만 웹 사이트와 Google을 검색하는 것이 아니라는 것을 알았습니다. 선택한 항목을 읽는 방법에 대한 정보 페이지를 목록 상자 및 초기화하는 동안 선택하는 방법에별로.

답변

0

당신은 또한

CRM_Edit_Groups.ListBox1.Selected(j) = True 

를 사용하여 목록에서 복수 선택을 할 수 있는지 확인해야합니다. 사용자 정의 창에서 목록 상자를 선택하고 오브젝트 특성으로 이동하십시오. 속성 MultiSelect을 찾고 옵션 1을 선택했습니다.

+0

Marius, 그 일을 해냈고, 내가 잘못한 곳을 볼 수있는 것보다 낫다! 고맙습니다 –

관련 문제