• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付の入ったセル範囲から、ある日付を選択したい)

日付の入ったセル範囲から、ある日付を選択したい

このQ&Aのポイント
  • Windows7 EXCEL2007でマクロ作成中の初心者です。セルには式がはいってます。セルの表示は年月日のうち日のみ表示。検索したい年月日は次のとおりです。次のようなコードでO4のセルを選択したいのですが、うまく行きません。どうしたらよいか、教えて下さい。
  • Windows7 EXCEL2007でマクロ作成中の初心者ですが、セル範囲から特定の日付を選択したいです。式が入ったセルの表示は年月日のうち日のみ表示されており、検索したい年月日も指定されています。しかし、コードで指定してもうまく行かないようです。どのようにすればよいでしょうか?
  • マクロ作成初心者です。Windows7 EXCEL2007を使用しています。セル範囲に式が入っており、表示は年月日のうち日のみです。検索したい年月日も指定されていますが、コードでセルの選択がうまく行かないようです。どのように修正すればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8537/18277)
回答No.4

#2です。 Sub 日付選択() Range("L4:P4").Select Selection.Name = "日付範囲" Range("日付範囲").Find(What:=day(Range("K4")), LookIn:=xlValues).Select End Sub

aitaine
質問者

お礼

今ためしたら、完璧にできました。ありがとうございました。本当にたすかりました。

その他の回答 (4)

回答No.5

#1です VLOOKUP(J73,年月管理!F17:I39,4,FALSE) これは日付を返すんでしょうか? 2015/8/18みたいな。 それをセルの書式設定で、dで日だけ表示? それとも日だけを返す?18みたいな。 日だけだと、2015/8/21だろうが、2015/7/21だろうが選択されてしまうと思いますが、そのあたりは別のところで整合性とってあるんでしょうか?

回答No.3

Range("日付範囲").Find(Range("K4").Value).Select を Range("日付範囲").Find(Range("K4").Value,Lookin:=xlValues).Select にして「値で検索」に変更してみて下さい。

aitaine
質問者

補足

教えていただいた、コードを実行したら、オブジェクト変数やwithブロック変数エラーが出てうまく行きませんでした。

  • f272
  • ベストアンサー率46% (8537/18277)
回答No.2

Sub 日付選択() Range("L4:P4").Select Selection.Name = "日付範囲" Range("日付範囲").Find(What:=Range("K4").Value, LookIn:=xlValues).Select End Sub

aitaine
質問者

補足

教えていただいた、コードを実行したら、オブジェクト変数や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 'は成功します。

回答No.1

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

関連するQ&A

専門家に質問してみよう