【发布时间】:2017-07-05 18:14:45
【问题描述】:
我正在尝试使用 AutoFilter 过滤 excel 数据,但不知何故它不起作用。 我要过滤的数据代表时间,格式为 00:00 到 23:59。 具体来说,我正在尝试按小时过滤,例如“00”到“23”,或“00:”到“23:”,以任何有效者为准。 但是,它不起作用,并且没有一个被过滤。
假设有一个类似的表
|ID|日期|时间 |
| 0 | 7/5 | 00:00|
| 1 | 7/5 | 00:20|
| 2 | 7/5 | 00:35|
| 3 | 7/5 | 00:47|
| 4 | 7/5 | 00:58|
| 5 | 7/5 | 01:03|
| 6 | 7/5 | 01:15|
| 7 | 7/5 | 01:27|
| 8 | 7/5 | 01:48|
我测试了以下宏:
Selection.Autofilter Field:=3, Criteria1:="=00*"
希望我能得到前 5 行数据,因为它们的时间以“00”开头。我查找了有关如何在 AutoFilter 中设置“开始于”的信息,发现可以使用星号 (*)。但是,这不起作用,并且没有任何行被过滤。 有趣的是,如果我尝试以下操作:
Selection.Autofilter Field:=3, Criteria1:="00:20"
它工作得很好,它只过滤了时间为“00:20”的第二行。
为什么我的第一个带有 * 的宏不起作用?我尝试了许多不同的方法都无济于事。谁能告诉我为什么这不起作用?
【问题讨论】:
-
Criteria1="=00*"----->Criteria1:="=00*"(不要忘记参数名称后面的列)。 -
感谢您指出这一点!这是一个错字,在实际程序中,它有冒号。
-
您在运行宏时选择了什么?为什么要使用
Selection!?尝试在一个明确的、完全限定的范围内运行它。