
ExcelのA列に日付がずらずらと入っているのですがその中から「今日」に該当する部分を探したいと思っています。
findを使うことが出来ないでいます。
Const xlValues = -4163
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open("C:\Book1.xls")
strLastDay = Cstr(Date - 1)
With objExcelApp.WorkSheets("Sheet1").Rangge("A8:A65535")
Set objClm = .Find(Trim(strLastDay),,xlValues)
If Not objClm Is Nothing Then
intCol = objClm.Column
intRow = objClm.Row
このあとどうしたらいいかわかりません・・・お願いします。

No.2ベストアンサー
- 回答日時:
なぜFindが使えないのか詳しいことは分かりませんでしたがとりあえず動くようにはしました。
シートのB列とC列を書き換えているので注意してください。
Const xlValues = -4163
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open ("C:\Book1.xls")
Set ExcelSheet = objExcelApp.Worksheets("Sheet1")
With ExcelSheet
'Cells(1, 2)に検索する日付を入力(Date?)
.Cells(1, 2).Value = Date - 1
'Cells(1, 2)の値をTextプロパティで取得するので見た目を整えておく
.Columns("A:A").EntireColumn.AutoFit
.Columns("B:B").EntireColumn.AutoFit
i = 8 '検索開始行
j = 1 'Cells(j, 3)に見つかった行を入力する
On Error Resume Next
Do
Set rng = .Range("A" & i & ":A65535").Find(.Cells(1, 2).Text, , xlValues)
.Cells(j, 3).Value = rng.Row
j = j + 1
i = rng.Row + 1
Loop Until rng Is Nothing Or i > 65535
On Error GoTo 0
End With
No.1
- 回答日時:
>このあとどうしたらいいかわかりません・・・お願いします。
このあとしたいことは、質問者にしか分かりません。(^^;;;
それ以前に提示したコードはいくつかミスがあるので動作しません。
で、次のコードを試してみてください。
エクセルA列の日付の表示形式が、2009/9/5(YYYY/M/D) として。
'----------------------------------------------
Const xlValues = -4163
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set myBook = objExcelApp.Workbooks.Open("C:\Book1.xls")
strLastDay = Date
With myBook.WorkSheets("Sheet1").Range("A8:A65535")
Set objClm = .Find(strLastDay,,xlValues)
End with
If Not objClm Is Nothing Then
intCol = objClm.Column
intRow = objClm.Row
MsgBox "今日は、" & objClm.Address(0,0) & " のセルです"
End If
'------------------------------------------
最も重要なところは
Set myBook = objExcelApp.Workbooks.Open("C:\Book1.xls")
With myBook.WorkSheets("Sheet1").Range("A8:A65535")
これです。
また、今日を探すわけですから
>strLastDay = Cstr(Date - 1)
Dateから1引く必要はないし、
>Set objClm = .Find(Trim(strLastDay),,xlValues)
Trimも不必要だと思いますが。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
DataGridViewに空白がある場合...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
VBA 何かしら文字が入っていたら
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
Changeイベントでの複数セルの...
-
エクセル 2つの表の並べ替え
-
VBScriptでfindを使うには??
-
マクロ 最終列をコピーして最終...
-
エクセルVBA、特定条件で行を追加
-
VBAで指定範囲内の空白セルを左...
-
データグリッドビューの一番最...
-
VBAのFind関数で結合セルを検索...
-
VBA とびとびの列を結合させる
-
VBAコンボボックスで選択した値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報