回答受付中の質問
はじめまして。
不要データの削除方法で困っています。
下記のような感じでデータが並んでいるのですが、
このうちTIMEが07:00以前のものと17:00以降のデータが
必要ないので行ごと削除したいのです。
条件式でいろいろとやっているのですがうまく行かないので
教えていただければと思います。
マクロでも構いませんのでよろしくお願い致します。
EVENTDATE TIME
12010/6/615:22
22010/6/615:25
32010/6/615:36
42010/6/615:38
52010/6/615:38
62010/6/615:39
72010/6/615:39
82010/6/616:05
92010/6/616:05
102010/6/712:02
112010/6/713:43
122010/6/713:59
132010/6/713:59
142010/6/713:59
・・・・・・
14672010/10/1312:42
14682010/10/1312:43
14692010/10/1312:44
14702010/10/1416:05
14712010/10/1416:05
14722010/10/1511:09
14732010/10/1512:33
14742010/10/1512:48
14752010/10/1512:48
投稿日時 - 2010-11-27 18:55:09
1人が「このQ&Aが役に立った」と投票しています
回答(4件中 1~4件目)
さきほど「条件付データの行削除について(追加)」qa6347747 にお答えしたものです。
これも同じようにできますね。
データは2行目からあり、時刻はC列だとします。
07:00ちょうどと17:00ちょうどを含むかどうかは>=、<= を>、<に変えることで変更できます。
以下は「ちょうど」は残します。
Sub test()
Dim V, W
Dim i As Long, j As Long, n As Long
V = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Resize(, ActiveSheet.UsedRange.Columns.Count)
ReDim W(1 To UBound(V, 1), 1 To UBound(V, 2))
For i = 1 To UBound(V, 1)
If i > 1 Then
If V(i, 3) >= TimeValue("07:00:00") And V(i, 3) <= TimeValue("17:00:00") Then
n = n + 1
For j = 1 To UBound(V, 2)
W(n, j) = V(i, j)
Next j
End If
End If
Next i
Cells(2, 1).Resize(UBound(W, 1), UBound(W, 2)).Value = W
End Sub
投稿日時 - 2010-11-28 11:04:46
No.2です!
たびたびごめんなさい。
回答文に誤りがあり、前回のコードでは7時台も削除されてしまいますので、
少し訂正させてください。
操作したいSheet見出し上で右クリック → コードの表示 → VBE・・・
(「コードの表示」部分が抜けていました。)
そしてコードを↓のようにしてみてください。
Sub test()
Dim i As Long
For i = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
If Hour(Cells(i, 3)) < 7 Or Hour(Cells(i, 3)) >= 17 Then
Rows(i).Delete (xlUp)
End If
Next i
End Sub
こんな感じではどうでしょうか?
何度も失礼しました。m(__)m
投稿日時 - 2010-11-27 20:26:10
こんばんは!
外していたらごめんなさい。
データは2行めからあり、時刻データはC列に入っているものとします。
↓のコードを操作したいSheet見出し上で右クリック → VBE画面が出ますので
コピー&ペーストしてマクロを実行してみてください。
Sub test()
Dim i As Long
For i = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
If Hour(Cells(i, 3)) <= 7 Or Hour(Cells(i, 3)) >= 17 Then
Rows(i).Delete (xlUp)
End If
Next i
End Sub
7時以前・17時以降のデータを削除するようにしていますので、7時・17時を含まないのであれば
コード内の等号を消してください。
尚、一旦マクロを実行すると元に戻せませんので別Sheetでマクロを試してみてください。
以上、参考になれば良いのですが・・・m(__)m
投稿日時 - 2010-11-27 20:12:50
OKWaveのオススメ
おすすめリンク