将ListObject列添加到Userformcombobox列表时出错

我有一个用户表单,我命名为UFCustInfo。 在工作表区域,我有一个macros来显示窗体 –

Private Sub CmdShowInputForm() UFCustInfo.Show End Sub 

这被分配到工作表上的一个button(表单控件)。

在用户窗体中,我也有一个初始化例程来填充用户窗体上的combobox –

 Private Sub UserForm_Initialize() Me.CBCustName.List = ActiveSheet.ListObject("CustInfo").ListColumns(1).DataBodyRange.Value End Sub 

当我单击命令button来显示窗体,我得到运行时错误'438':对象不支持此属性或方法,并debugging突出显示“UFCustInfo.Show”行。

如果我禁用(注释)Initialize行,表单将加载,但(当然)combobox不会填充。

我也有代码来添加新的,清晰的forms和closuresforms,只要我不运行初始化代码,所有运行良好。 我错过了什么?

从我们提供的有关您的listobject的有限信息中,我认为这个修补程序可能适用于您。 我认为ListObject是一个types,而ListObjects (复数)是你试图访问的集合。

 ' *Add this to top of your module to identify future syntax errors before running *' Option Explicit Private Sub UserForm_Initialize() Const COL_NUM as Integer = 1 ' Which column you want to access ' Dim ws As Worksheet Dim i As Long Dim tbl As ListObject Set ws = ActiveSheet Set tbl = ws.ListObjects("CustInfo") CBCustName.Clear With tbl ' Add cell values one at a time to the Combo Box List For i = 1 To tbl.DataBodyRange.Rows.Count CBCustName.AddItem tbl.DataBodyRange.Cells(i, COL_NUM) Next End With End Sub