我有一个名为UFCustInfo的用户表单。在工作表区域中,我有一个宏来显示表单 -
Private Sub CmdShowInputForm()
UFCustInfo.Show
End Sub
将其分配给工作表上的按钮(表单控件)。
在userform区域中,我还有一个初始化例程来填充用户窗体上的组合框 -
Private Sub UserForm_Initialize()
Me.CBCustName.List = ActiveSheet.ListObject("CustInfo").ListColumns(1).DataBodyRange.Value
End Sub
当我单击命令按钮以显示表单时,我得到运行时错误'438':对象不支持此属性或方法,并且调试突出显示“UFCustInfo.Show”行。
如果我禁用(注释)Initialize行,表单将加载,但(当然)组合框不会填充。
我还有代码来添加新的,清晰的表单和关闭表单,只要我不运行初始化代码,所有表单都可以正常运行。我错过了什么?
答案 0 :(得分:0)
根据您提供的有关您的listobject的有限信息,我认为此修复可能对您有用。我认为ListObject
是一种类型,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