• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロでの検索の仕方をお教えください。)

マクロでの検索方法とエラー対策について

このQ&Aのポイント
  • マクロでの検索方法についてお教えします。24時間表示のデータが並んでいる場合、9:00:00を検索すると21:00:00もヒットしてしまうことがあります。この問題を解決する方法をご紹介します。
  • セルの書式はyyyy/m/d h:mmで表示は2013/8/29 9:00です。セルには2013/8/29 9:00:00、2013/8/29 10:00:00などが入っています。1時間ごとに24時間500日くらいのデータがA列にあります。21:00:00にヒットしないようにする方法を教えてください。
  • また、マクロの実行中に「オブジェクト変数またはWithブロック変数が設定されていません」というエラーが発生することがあります。このエラーの対策についてもアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

2パターン挙げてみます。 Sub Re8289389()   Dim r As Range   For Each r In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)     If r.Text Like "* 9:00" Then       ' ' 見つかった場合の処理       Debug.Print r.Row     End If   Next End Sub Sub Re8289389j()   Dim r As Range   For Each r In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)     If IsDate(r.Value) Then       If Hour(r.Value) = 9 Then         ' ' 見つかった場合の処理         Debug.Print r.Row       End If     End If   Next End Sub

yama0192
質問者

お礼

 早速の回答ありがとうございました。  Sub Re8289389()のパターンで希望がかないました  色々なパターンのご教授ありとうございました。

その他の回答 (2)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

Findメソッドを使いたかったのですね。 それなら、 Sub Re8289389c()   Dim c As Range   Dim n1stRow As Long   With Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)     Set c = .Find(What:=TimeValue("9:00"), After:=.Cells(.Cells.Count), _         LookIn:=xlFormulas, LookAt:=xlPart)     If Not c Is Nothing Then       n1stRow = c.Row       Do         ' ' 見つかった場合の処理         Debug.Print c.Row         Set c = .FindNext(c)       Loop While Not c Is Nothing And c.Row > n1stRow     End If   End With End Sub

yama0192
質問者

お礼

早速の回答ありがとうございました。  Sub Re8289389()のパターンで希望がかないました  色々なパターンのご教授ありとうございました。

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.1

あまり確認していませんが以下でどうでしょうか。 Sub test() Dim c As Range For Each c In Range("A1:A30")  '検索範囲   If Hour(c) = "9" Then      '9時検索     MsgBox (c.Row & "行目で見つかりました")   End If Next c End Sub ※見易さの為半角スペースを全角にしております。

yama0192
質問者

お礼

 cj_mover様の回答で無事解決できました  これに懲りずお教えくださいますようお願いいたします。  ありがとうございました。

yama0192
質問者

補足

早速の回答ありがとうございます。  さっそくテストしましたがうまくいきません 実行時エラー'13': 型が一致しません。  というエラーになります どう対処すればよいのかわかりません A列の日時データをいじってみたのですが うまくいきませんでした  お手数をおかけしますがよろしく  お願いいたします。

関連するQ&A

専門家に質問してみよう