- ベストアンサー
日付の入ったセル範囲から、ある日付を選択したい
- Windows7 EXCEL2007でマクロ作成中の初心者です。セルには式がはいってます。セルの表示は年月日のうち日のみ表示。検索したい年月日は次のとおりです。次のようなコードでO4のセルを選択したいのですが、うまく行きません。どうしたらよいか、教えて下さい。
- Windows7 EXCEL2007でマクロ作成中の初心者ですが、セル範囲から特定の日付を選択したいです。式が入ったセルの表示は年月日のうち日のみ表示されており、検索したい年月日も指定されています。しかし、コードで指定してもうまく行かないようです。どのようにすればよいでしょうか?
- マクロ作成初心者です。Windows7 EXCEL2007を使用しています。セル範囲に式が入っており、表示は年月日のうち日のみです。検索したい年月日も指定されていますが、コードでセルの選択がうまく行かないようです。どのように修正すればよいでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 Sub 日付選択() Range("L4:P4").Select Selection.Name = "日付範囲" Range("日付範囲").Find(What:=day(Range("K4")), LookIn:=xlValues).Select End Sub
その他の回答 (4)
- BarcodeMaster
- ベストアンサー率73% (17/23)
#1です VLOOKUP(J73,年月管理!F17:I39,4,FALSE) これは日付を返すんでしょうか? 2015/8/18みたいな。 それをセルの書式設定で、dで日だけ表示? それとも日だけを返す?18みたいな。 日だけだと、2015/8/21だろうが、2015/7/21だろうが選択されてしまうと思いますが、そのあたりは別のところで整合性とってあるんでしょうか?
- chie65536(@chie65535)
- ベストアンサー率44% (8758/19872)
Range("日付範囲").Find(Range("K4").Value).Select を Range("日付範囲").Find(Range("K4").Value,Lookin:=xlValues).Select にして「値で検索」に変更してみて下さい。
補足
教えていただいた、コードを実行したら、オブジェクト変数やwithブロック変数エラーが出てうまく行きませんでした。
- f272
- ベストアンサー率46% (8537/18277)
Sub 日付選択() Range("L4:P4").Select Selection.Name = "日付範囲" Range("日付範囲").Find(What:=Range("K4").Value, LookIn:=xlValues).Select End Sub
補足
教えていただいた、コードを実行したら、オブジェクト変数やwithブロック変数エラーが出てうまく行きませんでした。 あるサイトでこんなんのが、ありましたが、これを応用して作っていただけませんでしょうか?どうしても、2015/8/21形式でなく、日にちだけ表示したいというのが条件です。 'セルに、直接シリアル値が入力されているのではなく「=A1+1」のような数式が入力されていると、DateValue関数では検索できないのでしょうか。 'セル範囲A1:A5を選択して、表示形式を「* 2001/3/14」に設定してください。 '今度は、 Sub Sample4() Dim FC As Range Set FC = Range("A1:A5").Find(What:=DateValue("2010/7/5"), _ LookIn:=xlFormulas) MsgBox IIf(FC Is Nothing, "失敗", "成功") End Sub 'は失敗しますが、 Sub Sample4() Dim FC As Range Set FC = Range("A1:A5").Find(What:=DateValue("2010/7/5"), _ LookIn:=xlValues) MsgBox IIf(FC Is Nothing, "失敗", "成功") End Sub 'は成功します。
- BarcodeMaster
- ベストアンサー率73% (17/23)
Sub 日付選択() Dim intCnt As Integer For intCnt = 12 To 16 If Cells(4, 11).Value = Cells(4, intCnt).Value Then Cells(4, intCnt).Select Exit Sub End If Next intCnt Call MsgBox("そんな値ないよ!") End Sub
お礼
今ためしたら、完璧にできました。ありがとうございました。本当にたすかりました。