VBA列表框"选择"项目,但随机保留值为""

时间:2017-07-13 11:54:31

标签: excel-vba userform vba excel

我正在努力使用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

所以总是有五分之三的作品,

2从不填充值,并不总是相同,当我放置断点并添加监视分析时,EX_ .caption有与之关联的文本,但DD _ .value =&#34 ;",其他3,具有相同的标题,变量和值,奇怪的是,右边的列表框是以我的形式选择的......

请帮忙!

1 个答案:

答案 0 :(得分:0)

由于我无法确定原因,我正在搜索它是否为空白,以及是否填充了标签。

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