范围对象中的VBA错误424对象

时间:2016-06-01 07:24:20

标签: excel-vba combobox range vba excel

我在下面的代码中收到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

1 个答案:

答案 0 :(得分:0)

一旦关闭源工作簿,您的col变量就不算什么了。这就是导致错误的原因 - 您不能让Range对象引用已关闭工作簿中的范围。只需在填充控件后关闭它,或者先将数据加载到数组中。