[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付を検索』(bb)
前回教えていただいた日付を検索するコードですが現在1ヶ月分を6ヶ月分に変更したいのですがコードを見ても意味がわかりませんでした? 6ヶ月分に変更してもらえないでしょうか・・・?あと意味も教えてもらえませんか?宜しくお願いします。 Private Sub Worksheet_Activate() If Month(Date) <> Month(Range("F7")) Then MsgBox "今月のシートと違います。" Exit Sub End If Dim d As Integer Dim r As Integer
d = Day(Date) r = d + 5 Cells(7, r).Select End Sub
このコードは月に依存していませんが、ここから読み取れることは シートの E7 〜 日付があるということです。
1カ月を6カ月にということは、シート内の日付が増えるということでしょうか。 でしたら、まずどう増えるかを提示するのが先だと思います。 (Mook)
E7が12/1だとGE7が5/1になり6ヶ月です。今まではE7〜AJ7でした。 宜しくお願いします。(bb)
GE7は6/1になりませんか
すみません。寝ぼけてて足し算間違えましたね。 シート名との関係はどうなるのでしょうか。
コードの最初の3行はシート名が今月の月数と一致しているかのチェックをして、 異なったら終了となっています。 (Mook)
Mookさん 引き続き、勘違いがあるような気がします。 F7は、最初の日付なので、シート名は関係ないと思います。
bbさん そのコードは日付を検索するものではありません。
今日の日付が入っているべきセルを選択するものです。 実際に今日の日付が入っているかどうかは無関係です。
・・でも、F7の日付と数式が正しく入っていれば、正しい結果になります。
以下の案も、今日の日付とF7セルの差を算出して、 今日の日付が入っているべきセルを選択するものです。
Private Sub Worksheet_Activate() Dim d As Long Dim r As Long
d = Date - Range("F7").Value r = d + 6
If 5 < r And r < 188 Then Cells(7, r).Select Else MsgBox "F7の日付が正しくないのでは?" End If
End Sub
(半平太) 2010/11/15 08:47
指摘ありがとうございます。 まったく勘違いしていました。
位置を推定するのではなく、7行目から日付を検索する案です。
Private Sub Worksheet_Activate() Dim txtFmtToday As String txtFmtToday = Application.Text(Date, Range("F7").NumberFormat)
Dim r As Range Set r = Rows(7).Find(What:=txtFmtToday, LookAt:=xlWhole, LookIn:=xlValues) If r Is Nothing Then MsgBox "該当日付がありません。" Else r.Activate End If End Sub (Mook)
再度質問させてください。このコードは今日の日付を探しますがこのコードの感じで今日から一週間先の 日付を探したいのですが出来ませんか?よろしくお願いします。(BB)
DateAdd("d",7,Date) が一週間後の日付です。 (Mook)
Mookさんたびたびすみません。 DateAdd("d",7,Date)をどこに組み込んだらいいのでしょうか? (BB)
> txtFmtToday = Application.Text(Date, Range("F7").NumberFormat)
ここじゃないですか? ↓ txtFmtToday = Application.Text(DateAdd("d",7,Date), Range("F7").NumberFormat)
(半平太) 2010/11/17 23:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.