带符号的VBA AutoFilter(*)不工作

时间:2017-07-05 18:14:45

标签: excel vba excel-vba

我正在尝试使用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"。

为什么我的第一个宏*不起作用?我尝试了许多不同的方法无济于事。有人能告诉我为什么这不起作用吗?

1 个答案:

答案 0 :(得分:0)

Excel将时间值视为十进制数。一种方法是插入一个名为" Hour"并在D2中放入以下公式

<span class="glyphicon glyphicon-repeat"></span>

并将其复制下来。

现在过滤下面的数据......

=HOUR(C2)