我有一个类存储一系列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
这一行抛出一个错误
我需要找到一种方法来仅使用组件名称来获取组合框的两个值