【发布时间】:2015-05-12 09:49:52
【问题描述】:
我有一个工作表Data24h,其中填充了按日期排序的数据。
我想为用户创建仅显示特定日期的数据的功能。
所以我创建了一个UserForm,用户在textbox1 中输入一个日期,然后我希望程序隐藏不包含在日期间隔中的每一行。
隐藏功能似乎起作用,但条件不起作用。如果我将今天的日期作为 YYMMDD 作为输入,它仍将显示所有日期。
我是一般编程的新手,尤其是 VBA,如果问题有点含糊,我很可能是代码看起来像 #!!#@。
Private Sub CommandButton1_Click()
Datum = TextBox1.Value
Sheets("Data24h").Select
BeginRow = ""
EndRow = 100
ChkCol = 3
For RowCnt = BeginRow To EndRow
If Cells(RowCnt, ChkCol).Value >= Datum Then
Cells(RowCnt, ChkCol).EntireRow.Hidden = True
Else
Cells(RowCnt, ChkCol).EntireRow.Hidden = False
End If
Next RowCnt
Columns("A").Select
Unload Me
Återställ1.Show
End Sub
所以我尝试使用 Autofilter 但仍然无法管理。现在我在“最后一个”自动筛选行中收到错误 1004。据我了解,我收到此错误是因为自动过滤器认为范围为空?
编辑:我做到了!自动过滤器解决了它!我只是错过了 := 在字段中。感谢大家的努力。
Private Sub CommandButton1_Click()
Dim Datum As Date
Dim Datum_l As Long
Sheets("Data24h").Select
Datum = CDate(Me.TextBox1.Value)
With Data24h
AutoFilterMode = False
Selection.Range("A2:A100").AutoFilter
Selection.Range("A2:A100").AutoFilter Field = 1, Criteria1:=">=" & Datum
End With
【问题讨论】:
-
你的声明在哪里?你试过调试吗?
-
使用
Autofilter将是一个非常简单的方法。它可以按特定日期(今天、昨天、3 月 1 日)或日期范围(上个月、本季度、3 月 1 日至 3 月 14 日)过滤您的数据。 -
单元格和列的集合在这里并没有立即显示出轴承或引用(除非它们在方法之外声明)。您可能想尝试添加 THISWORKBOOK.WORKSHEETS("SHEET1").CELLS 而不仅仅是 CELLS。列也是如此。另外,你不能在这里使用 Excel 的内置过滤 - 你需要 VBA 吗?
-
我一直在研究 Autofilter 但也无法让它工作。也许这更好?在最坏的情况下,我将使用内置过滤,但我想这会迫使程序的操作员能够过滤它?