[英]User-defined type not defined when used in form?
下面的建議后更新了問題,但仍然存在相同的問題。
我正在嘗試獲取標簽txtFullName標題,以在組合框中選擇客戶ID時顯示我的類型Customer name元素的名稱,但是當我嘗試從組合框change子項中訪問type元素時,它告訴我未清除子還是功能?
在模塊中:
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之外定義了它?
在UserForm_Initialize
事件處理程序中聲明Customer()
數組意味着無法從該事件處理程序之外的任何位置訪問該數組。 將Dim Customer() As Customer
語句移到“模塊”頂部“ End Type
行之后。 這將使該數組對表單模塊中的每個事件處理程序可見
通過將Customer()和size設置為Public可以解決此問題。
Type Customer
Name as string
End Type
Public Customer() as Customer 'instead of Dim
Public size as Integer 'instead of Dim
現在可以從用戶表單中訪問類型為Customer的元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.