我有一个名为UFCustInfo的用户窗体。在工作表区域中,我有一个宏来显示表单-
Private Sub CmdShowInputForm()
UFCustInfo.Show
End Sub
这被分配给工作表上的一个按钮(窗体控件)。
在用户窗体区域中,我还有一个初始化例程,可在用户窗体上填充一个组合框–
Private Sub UserForm_Initialize()
Me.CBCustName.List = ActiveSheet.ListObject("CustInfo").ListColumns(1).DataBodyRange.Value
End Sub
当我单击命令按钮以显示表单时,出现运行时错误'438':对象不支持此属性或方法,并且调试突出显示了“ UFCustInfo.Show”行。
如果禁用(注释)Initialize行,则将加载该表单,但是(当然)组合框不会填充。
我还具有添加新的,清晰的表单和关闭表单的代码,只要我不运行初始化代码,它们都可以正常运行。我想念什么?
从您提供的有关列表对象的有限信息来看,我认为此修复程序可能对您有用。我认为这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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句