VBA 列表框 "select" 项,但随机保留值为“”

VBA listbox "select" items but remains with a value of "", randomly

我正在为 Excel VBA 用户表单而苦苦挣扎。

快速解释,我有 5 个 userform.listbox 可以手动填充或从标签生成的模板复制

当我使用宏复制模板时,列表框按预期被选中,但背景中的值对于 5 个框中的 2 个框保持为“”....并且并不总是相同。我需要手动点击突出显示的项目来生成值。

DD_ 是我的列表框,

EX_ 是我的标签

Dim ValueNewShrink As String 
Dim ValueGroup As String 
Dim ValueType As String 
Dim ValuePayType As String 
Dim ValueGroupType As String

ValueNewShrink = Validation.EX_NewShrink.Caption
Validation.DD_NewShrink.Value = ValueNewShrink

ValueGroup = Validation.EX_Group.Caption 
Validation.DD_Group.Value = ValueGroup

ValueType = Validation.EX_Type.Caption 
Validation.DD_Type.Value = ValueType

ValuePayType = Validation.EX_PayType.Caption
Validation.DD_PayType.Value = ValuePayType

ValueGroupType = Validation.EX_GroupType.Caption
Validation.DD_GroupType.Value = ValueGroupType

所以总是 5 个作品中有 3 个作品,

2 从不填充值,不总是相同的,当我放置断点并添加 watch 进行分析时,EX_.caption 有关联的文本,但 DD_。 value = "",另外 3 个,具有相同的标题、变量和值 奇怪的是,在我的表单中选择了正确的列表框.....

请帮忙!

由于我无法查明原因,我正在搜索它是否为空白以及是否正在使用标签填充。

If NewCodeFound.DD_NewShrink.Text <> "" Then
Worksheets("Email new code").Range("C10").Value = NewCodeFound.DD_NewShrink.Text
Else
Worksheets("Email new code").Range("C10").Value = NewCodeFound.EX_NewShrink.Caption
End If


If NewCodeFound.DD_Group.Text <> "" Then
Worksheets("Email new code").Range("D10").Value = NewCodeFound.DD_Group.Text
Else
Worksheets("Email new code").Range("D10").Value = NewCodeFound.EX_Group.Caption
End If

If NewCodeFound.DD_Type.Text <> "" Then
Worksheets("Email new code").Range("E10").Value = NewCodeFound.DD_Type.Text
Else
Worksheets("Email new code").Range("E10").Value = NewCodeFound.EX_Type.Caption
End If

If NewCodeFound.DD_PayType.Text <> "" Then
Worksheets("Email new code").Range("F10").Value = NewCodeFound.DD_PayType.Text
Else
Worksheets("Email new code").Range("F10").Value = NewCodeFound.EX_PayType.Caption
End If

If NewCodeFound.DD_GroupType.Text <> "" Then
Worksheets("Email new code").Range("G10").Value = NewCodeFound.DD_GroupType.Text
Else
Worksheets("Email new code").Range("G10").Value = NewCodeFound.EX_GroupType.Caption
End If