- 締切済み
日付型変数を検索する方法
シート内にある日付型の変数を検索させる処理をしたいのですが、以下のように記述したところ、 ================================== 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")存在しますし、なぜこのようなエラーがでるのか? また、どうしたら解消できるのか?について、教えていただきたく・・・ よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- watabe007
- ベストアンサー率62% (476/760)
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)
参考に 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)
lngYLine = Worksheets(newSh).Cells.Find(hiduke).Row すなわちnewSh の行でエラーが出る。 それまでのコードでnewSh定義・設定して無いからで、あたり前。 何かの勘違いでは。 それにC1に検索する値を入れているが、Cells。Findは論理的におかしくないですか。
- nda23
- ベストアンサー率54% (777/1415)
複数のブックを開いていませんか? Worksheets → ThisWorkbook.WorkSheets にしてみてください。