在下面的建议后更新了问题,但仍然遇到同样的问题。
我正在尝试获取标签txtFullName标题,以便在组合框中选择客户ID时显示我的类型客户名称元素的名称,但是当我尝试从组合框更改子中访问类型元素时,它告诉我它是不是一个贬低的子或功能?
在模块中:
Type Customer
Name as string
End Type
Dim Customer() as Customer
Dim size as Integer
Sub ExampleStart()
size = Sheets("Customers").UsedRange.Rows.Count
ReDim Customer(size)
For i = 0 To size
With Customer(i)
.Name = cells(i + 1, 1).Value
End With
Next
ExampleForm.Show
End Sub
在示例表格中:
Private Sub ExampleForm_Initialize()
For i = 0 To size
ExampleForm.comboboxCustomer.AddItem (Customer(i).Name) '<-Fails!
Next
End Sub
编译错误告诉Sub或Function尚未定义,即使我明确将它定义在任何私有sub之外?
答案 0 :(得分:2)
在Customer()
事件处理程序中声明UserForm_Initialize
数组意味着无法从该事件处理程序之外的任何位置访问该数组。将Dim Customer() As Customer
语句移到End Type
行后面的模块顶部。这将使表单模块
答案 1 :(得分:0)
通过将Customer()和size设置为Public
来解决问题Type Customer
Name as string
End Type
Public Customer() as Customer 'instead of Dim
Public size as Integer 'instead of Dim
现在可以在userform
中访问Customer类型的元素