我有一个类存储一系列userform组合框和文本框的名称和值 . 每个组件都存储在一个单独的实例中,然后存储在一个数组中 . 我正在存储它们,以便在移动到工作簿之前检索它们并检查其完整性 .

Class Module: MaterialField

Option Explicit

Private fieldName As String
Private fieldValue As Variant
Private fieldValue2 As String

Property Get Name() As String  
    Name = fieldName 
End Property

Property Get Value() As Variant
    Value = fieldValue
End Property

Property Get value2() As String
    value2 = fieldValue2
End Property

Property Let Name(str As String)
    fieldName = str
End Property

Property Let Value(val As Variant)
    fieldValue = val
End Property

Property Let value2(str As String)
    fieldValue2 = str
End Property

这是使用此类的代码

Private Sub FillTblArray()
Dim i As Integer
Dim j As Integer
Dim str As String

For i = 1 To 10
    For j = 1 To 3
        Set mats(i, j) = New MaterialField

        If (j = 1) Then
            str = "CB" & i
            mats(i, j).Name = str

            mats(i, j).Value = Me.Controls(str).Value
            mats(i, j).value2 = Me.Controls(str).Column(1).Value
        Else
            str = "TB" & i & (j - 1)
            mats(i, j).Name = str
            mats(i, j).Value = Me.Controls(str).Value
        End If
    Next j
Next i

结束子

mats(i, j).Value = Me.Controls(str).Value

正确存储第一列值

mats(i, j).value2 = Me.Controls(str).Column(1).Value

这一行抛出一个错误

我需要找到一种方法来仅使用组件名称来获取组合框的两个值