Excel VBA-现有搜索功能的附加搜索条件

时间:2018-07-25 19:33:19

标签: excel vba excel-vba

我有一个Excel UserForm,用户可以在其中输入开始和结束日期,还可以从2个组合框(ComboBox1和ComboBox2)中选择数据。以下代码搜索这些日期之间的行,其余代码(为简单起见,未显示)将行复制到新工作表中。

<form class="contact100-form validate-form" ID="frmRegister" runat="server">

我想将ComboBox1.value和ComboBox2.value添加到搜索条件中,并且如果这些ComboBox中的任何一个都留为空白,则忽略搜索过滤器的该部分。任何帮助将不胜感激!

更新:

我在这里非常困惑,对VBA还是很陌生。我似乎仍然无法解决这个问题,在此感谢您的帮助。下面是我尝试一起破解的代码,但是我不知道自己是否走上正确的轨道。

For Each c In rng.Cells
    If (c.value >= startDate And c.value <= endDate) Or _
(c.Offset(0, 2).value >= startDate And c.Offset(0, 2).value <= endDate)

1 个答案:

答案 0 :(得分:0)

您可以为不同的组合框值创建4个不同的循环。

If ComboBox1.ListIndex = -1 And ComboBox2.ListIndex = -1 Then 'both combos empty 
    For Each c In Rng.Cells
        If (c.value >= startDate And c.value <= endDate) Or _
        (c.Offset(0, 2).value >= startDate And c.Offset(0, 2).value <= endDate)
      ...
ElseIf ComboBox1.ListIndex <> -1 And ComboBox2.ListIndex = -1 Then  'combo1 not empty 
    Your loop with additional criteria based on combobox1

ElseIf ComboBox1.ListIndex = -1 And ComboBox2.ListIndex <> -1 Then  'combo2 not empty 
    Your loop with additional criteria based on combobox2

ElseIf ComboBox1.ListIndex <> -1 And ComboBox2.ListIndex <> -1 Then  'both combos with value 
    Your loop with additional criteria based on combobox1 and combobox2 

要使用.ListIndex,您需要将ComboBox Style属性设置为2 - fmStyleDropDownList 但这将仅允许从组合框列表中选择值。