【发布时间】:2016-09-30 10:20:07
【问题描述】:
我在下面的代码中收到 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
【问题讨论】:
-
错误应该出现在
Set wb = Workbooks.Open(Path, False, True)这一行,因为没有设置path来打开任何文件。您在该行遇到的错误可能是由于您在从该文件读取/获取数据之前关闭了该文件。您可能需要考虑将该行移到子目录的末尾。