こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

最新の日付が含まれているセルの取得するマクロ

A1セルに2019/3/24 田中
A2セルに2019/3/24 鈴木
A3セルに2019/3/25 山田
(日付のあとの文字はAlt+Enterで改行されています)

という入力がされているとき
最新の日付のA3セルを
A4セルに表示するにはどうすればいいでしょうか?
日付のみの検索方法ならネットにあったのですが
文字が含まれている場合がどうしたらよいかわかりません。

ちなみにA1からA3セルの日付がすべて同じなら
A1セルをA4セルに表示で大丈夫です。

A4セルに関数式などを入れておき取得できるのであれば
その方法でもいいです。

よろしくお願いします。

投稿日時 - 2019-03-25 09:18:49

QNo.9600331

すぐに回答ほしいです

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

>最新の日付のA3セルをA4セルに表示
A4セルに表示するのは最新の日付セルのアドレスなら
Sub Test2()
  Dim c As Range, mydate As Date, str As String
  For Each c In Range("A1:A3")
    If Split(c.Value, vbLf)(0) > mydate Then
      mydate = Split(c.Value, vbLf)(0)
      str = c.Address(0, 0)
    End If
  Next
  Range("A4").Value = str
End Sub
A4セルに表示するのは最新の日付セルの氏名なら
Sub Test3()
  Dim c As Range, mydate As Date, str As String
  For Each c In Range("A1:A3")
    If Split(c.Value, vbLf)(0) > mydate Then
      mydate = Split(c.Value, vbLf)(0)
      str = Split(c.Value, vbLf)(1)
    End If
  Next
  Range("A4").Value = str
End Sub

投稿日時 - 2019-03-25 19:14:27

お礼

ありがとうございます。
test3のmydate とstr を組み合わせて目的のことが行えました。
ありがとうございました。

投稿日時 - 2019-03-25 20:05:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>セルの取得するマクロ
なのでマクロで
Sub Test()
  Dim c As Range, mydate As Date
  For Each c In Range("A1:A3")
    If Split(c.Value, vbLf)(0) > mydate Then mydate = Split(c.Value, vbLf)(0)
  Next
  Range("A4").Value = mydate
End Sub

投稿日時 - 2019-03-25 16:28:01

補足

ありがとうございます。
頂いたコードを試したところ
最新の日付は表示されたのですが
そのあとの文字(A3セルなら山田)が表示されません。
名前まで表示するにはどうすればよいでしょうか?

投稿日時 - 2019-03-25 20:01:59

ANo.1

B1セルに以下の式を入れ、
=TEXT(LEFT(A1,FIND(CHAR(10),A1)-1),0)+0
B1セルを下にB3セルまでドラッグコピーし、
A4セルに以下の式を入れてみてください。
=MAX(B:B)

投稿日時 - 2019-03-25 09:36:07

補足

ありがとうございます!
申し訳ございません。
Z列ぐらいまで既に入力がされていて
B列には入力出来ない状況です。
他の方法などはございませんでしょうか?

投稿日時 - 2019-03-25 13:07:59

あなたにオススメの質問