簡體   English   中英

在表單中使用時未定義用戶定義類型嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM