我有一个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)
答案 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
但这将仅允许从组合框列表中选择值。