• 締切済み

日付型変数を検索する方法

シート内にある日付型の変数を検索させる処理をしたいのですが、以下のように記述したところ、 ================================== Dim hiduke As Date Dim lngYLine As Long Dim intXLine As Integer hiduke = Cells(1, 3).Value 'セルの値取得 Set Obj = Worksheets("Sheet1").Cells.Find(hiduke) If Obj Is Nothing Then MsgBox "該当の日付" & hiduke & "は、ありません。" Else lngYLine = Worksheets(newSh).Cells.Find(hiduke).Row intXLine = Worksheets(newSh).Cells.Find(hiduke).Column     MsgBox hiduke"は、" + CStr(lngYLine) + "行目の" _ + CStr(intXLine) + "列目にあります" End If ================================== Set Obj = Worksheets("Sheet1").Cells.Find(hiduke) で「実行時エラー"9" インデックスが有効範囲にありません」のエラーになります。 ワークブック内には Worksheets("Sheet1")存在しますし、なぜこのようなエラーがでるのか? また、どうしたら解消できるのか?について、教えていただきたく・・・ よろしくお願いいたします。

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

Worksheets("Sheet1")がアクティブシートで無いのなら >Set Obj = Worksheets("Sheet1").Cells.Find(what:=hiduke, After:=Cells(1, 3)) >If Obj Is Nothing Or Obj.Address = "$C$1" Then ↓に修正してください。 Set Obj = Worksheets("Sheet1").Cells.Find(what:=hiduke) If Obj Is Nothing Then

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

参考に Dim hiduke As Date hiduke = Cells(1, 3).Value 'セルの値取得 Set Obj = Worksheets("Sheet1").Cells.Find(what:=hiduke, After:=Cells(1, 3)) If Obj Is Nothing Or Obj.Address = "$C$1" Then MsgBox "該当の日付" & hiduke & "は、ありません。" Else MsgBox hiduke & "は、" & Obj.Row & "行目の" & _ Obj.Column & "列目にあります" End If

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

lngYLine = Worksheets(newSh).Cells.Find(hiduke).Row すなわちnewSh の行でエラーが出る。 それまでのコードでnewSh定義・設定して無いからで、あたり前。 何かの勘違いでは。 それにC1に検索する値を入れているが、Cells。Findは論理的におかしくないですか。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

複数のブックを開いていませんか? Worksheets → ThisWorkbook.WorkSheets にしてみてください。

関連するQ&A