使用日期选择器将数据从excel工作表过滤到userform中的列表框

使用日期选择器将数据从excel工作表过滤到userform中的列表框,excel,vba,Excel,Vba,我一直在尝试创建一个excel宏,在该宏中,我从form1到excel sheet1获取用户输入,并使用form2通过使用日期选择器和列表框的组合框从sheet1获取数据。我遵循了一个教程,得出了这个结论,我没有向列表框显示任何错误输出。 另外,我还没有完全完成教程中的说明,但代码在我完成之前不会运行。我在两者之间迷失了方向,无法继续下一步 Private Sub DTPicker2_CloseUp() Dim i As Long Me.ListBox1.Clear For i = 2 To S

我一直在尝试创建一个excel宏,在该宏中,我从form1到excel sheet1获取用户输入,并使用form2通过使用日期选择器和列表框的组合框从sheet1获取数据。我遵循了一个教程,得出了这个结论,我没有向列表框显示任何错误输出。 另外,我还没有完全完成教程中的说明,但代码在我完成之前不会运行。我在两者之间迷失了方向,无法继续下一步

Private Sub DTPicker2_CloseUp()
Dim i As Long
Me.ListBox1.Clear
For i = 2 To Sheet1.Range("I100000").End(xlUp).Offset(1, 0).Row
If Sheet1.Cells(i, "A").Value = Me.ComboBox1.Value And Sheet1.Cells(i, "I").Value >= _
Me.DTPicker1.Value And Sheet1.Cells(i, "I").Value <= Me.DTPicker2.Value Then
Me.ListBox1.AddItem Sheet1.Cells(i, 1).Value
End If
Next i

End Sub

Private Sub-DTPicker2\u特写()
我想我会坚持多久
Me.ListBox1.Clear
对于i=2到表1。范围(“I100000”)。结束(xlUp)。偏移量(1,0)。行
如果Sheet1.Cells(i,“A”).Value=Me.ComboBox1.Value和Sheet1.Cells(i,“i”).Value>=_

Me.DTPicker1.Value和Sheet1.Cells(i,“i”).Value添加一些
Debug。在
If
语句之前打印
行,该语句显示所有要比较的值,以便您可以验证它们,并确保要比较的日期实际上不是
String
值,或者它们不会作为
Date
值进行比较。谢谢@braX我按照你的建议做了,但是窗口只显示了随机数。这是它的屏幕截图。这些是
i
的值-您想查看正在比较的实际值,而不是
i
的值。我使用了“Debug.Print Me.ListBox1.value”我得到返回值Null@braXwell听起来像是给了您一些可以继续的东西。。。这就是调试它的方法。。。仔细检查所有值