2017-07-05 4 views
0

オートフィルタを使用してExcelデータをフィルタリングしようとしていますが、何とか機能しません。 フィルタリングするデータは時刻を表し、00:00〜23:59の形式です。 具体的には、「00」〜「23」、「00:」〜「23:」のいずれかの方法で時間をフィルタリングしようとしています。 しかし、動作しておらず、フィルタリングされていません。VBAオートフィルタシンボル(*)が動作しない

テーブルがあると仮定すると、

| 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 |自分の時間が「00」で始まるように私は、データの上位5行を得ることができることを期待し

Selection.Autofilter Field:=3, Criteria1:="=00*" 



は、私は次のマクロをテストしました。オートフィルタで "start with"を設定する方法の情報を探しました。スター(*)を使うことができました。ただし、これは機能せず、行はフィルタリングされません。

Selection.Autofilter Field:=3, Criteria1:="00:20" 

それがうまく働い、それは時間が「0:20」であるだけ第二行を濾過: 興味深いことに、もし私は、次の試み。

なぜ私の最初のマクロは機能しませんか?私は無駄に多くの異なる方法を試みた。誰かがなぜこれが動かないのか教えてもらえますか?

+0

あなたは時間を確認できるテキスト形式ではありませんか? – pnuts

+1

'Criteria1 =" = 00 * "' -----> 'Criteria1:=" = 00 * "'(パラメータの名前の後に*カラム*を忘れないでください)。 –

+0

それを指摘してくれてありがとう!それはタイプミスで、実際のプログラムではコロンがあります。 –

答えて

0

Excelは時刻の値を10進数として扱います。 1つのアプローチは、 "Hour"というヘルパー列を挿入し、次の式をD2に入れて

=HOUR(C2) 

となるようにコピーしてコピーすることです。

は今、以下のようなデータをフィルタリング...

Range("$A$1:$D1").Autofilter Field:=4, Criteria1:="=0" 
+0

ありがとう!私はExcelマクロを初めて使用しましたが、データに異なる種類があることはわかりませんでした。私は彼らがすべての弦であると思った。私はヒントとしてこれを使用し、私はそれを動作させることができた。誰もが助けてくれてありがとう! –

+0

@ J.Doeよろしくお願いします!それは期待どおりに働いてうれしい。 – sktneer

関連する問題