ここから質問投稿すると、最大10000ポイント当たる!!!! >>

はじめまして。
不要データの削除方法で困っています。
下記のような感じでデータが並んでいるのですが、
このうち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

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 0

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
    • good
    • 0

こんばんは!


外していたらごめんなさい。

データは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
    • good
    • 0

一例です。


オートフィルタを設定して、その時間範囲で抽出した行を削除したら如何でしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング