2016-06-01 6 views
0

아래 코드에서 424 오류가 발생하며 잘못된 것이 무엇인지 알 수 없습니다. 기본적으로 다른 통합 문서의 테이블에있는 열의 데이터로 콤보 상자를 채우려고합니다. 범위를 사용하여이를 수행하고 가능한 한 자동화합니다. 즉, 심지어 콤보 상자 개체를 변수로 전달하고 싶었습니다 ...하지만 여기에 붙어 있습니다 ...범위 개체의 VBA 오류 424 개체

도움을 주셔서 감사합니다!

Sub PopListBoxTbl(tbl As String) 
Dim popv As Range, col As Range 
Dim cmb As ComboBox 
Dim wb As Workbook 
Dim sheet As Worksheet 
Set cmb = UserForm1.ComboBox2 
Set wb = Workbooks.Open(path, False, True) 
Set sheet = wb.Worksheets(tbl) 
Set col = sheet.Range(tbl) 
wb.Close 
cmb.Clear 
For Each popv In col.Cells 'here's the error line 
With cmb 
    .AddItem popv.Value 
End With 
Next popv 
End Sub 
+0

파일을 열 수있는'path'가 없기 때문에'Set wb = Workbooks.Open (Path, False, True)'줄에 오류가 발생해야합니다. 이 줄에 오는 오류는 아마도 해당 파일에서 데이터를 읽거나 잡기 전에 파일을 닫았 기 때문일 수 있습니다. 이 줄을 서브의 끝으로 옮기는 것을 고려할 수 있습니다. – Ralph

답변

0

소스 통합 문서를 닫으면 col 변수가 아무것도 없습니다. 이것이 오류의 원인입니다. Range 개체는 닫힌 통합 문서의 범위를 참조 할 수 없습니다. 컨트롤을 채운 후 닫거나 배열에 데이터를 먼저로드하십시오.

+0

고마워요! 그것은 효과가 있었다. 닫힌 통합 문서의 범위를 참조하는 Range 개체를 가질 수 없다는 생각이 들지 않았습니다. – Alinas