首页 > 解决方案 > 为什么我的选项按钮没有切换组合框文本?

问题描述

我有两个选项按钮,允许用户通过它的 # 或它的名称搜索工作。在此处输入图像描述

因此,如果您单击左侧的 opt 按钮,它将显示为:

在此处输入图像描述

然后反之亦然:

在此处输入图像描述

然后我添加了这个来填充列表:

Sub Search_Reqs_Cmb_IM()
    Dim rWs As Worksheet: Set rWs = ThisWorkbook.Worksheets("Approved Roles")

    If UserForm2.optSearchReq.Value = True Then 'search by job #
        For x = 2 To rWs.Cells(Rows.Count, 2).End(xlUp).row
            UserForm2.cmbReqNum.AddItem rWs.Cells(x, 2) & " - " & rWs.Cells(x, 13)
        Next x
    ElseIf UserForm2.optSearchJob.Value = True Then 'search by job name
        For x = 2 To rWs.Cells(Rows.Count, 2).End(xlUp).row
            UserForm2.cmbReqNum.AddItem rWs.Cells(x, 13) & " - " & rWs.Cells(x, 2)
        Next x
    End If
End Sub

然后在每次单击按钮时查看每个选项按钮的代码call Search_Reqs_Cmb_IM

因此,当我单击任何一个时,无论我是否在两个选项按钮之间切换,它都会始终填充。如果我单击该选择按钮,我希望它切换到job name - job number,反之亦然。我怎样才能确保它会在两种格式之间切换?

标签: excelvba

解决方案


您需要先致电.Clear.AddItem否则每次选择该选项时您的列表都会增加。

Sub Search_Reqs_Cmb_IM()
    Dim rWs As Worksheet: Set rWs = ThisWorkbook.Worksheets("Approved Roles")

    If UserForm2.optSearchReq.Value = True Then 'search by job #
        UserForm2.cmbReqNum.Clear
        For x = 2 To rWs.Cells(Rows.Count, 2).End(xlUp).Row
            UserForm2.cmbReqNum.AddItem rWs.Cells(x, 2) & " - " & rWs.Cells(x, 13)
        Next x
    ElseIf UserForm2.optSearchJob.Value = True Then 'search by job name
        UserForm2.cmbReqNum.Clear
        For x = 2 To rWs.Cells(Rows.Count, 2).End(xlUp).Row
            UserForm2.cmbReqNum.AddItem rWs.Cells(x, 13) & " - " & rWs.Cells(x, 2)
        Next x
    End If
End Sub

推荐阅读