У меня много дат в столбце D. Мне нужно найти студента с самой ранней датой и показать следующую информацию в окне сообщения:
Sub Finddate()
Dim Mn As Integer
Mn = Application.Match(Application.Min(Range("D2:D18288")), Range("D2:D18288"), 0)
MsgBox ("For the student with the earliest date (" & Range("D" & Mn) & ") the following information applies: " & Range("k" & Mn) & ", " & Range("L" & Mn) & " and " & Range("M" & Mn))
End Sub
Однако, когда я запускаю макрос, он показывает неправильную дату. Самая ранняя дата в листе - 31-08-1996, но в ней говорится, что самая ранняя дата - 01-02-2010, и если я напишу =min(D2:D18288)
в Excel, она найдет правильную дату. Но мне нужно, чтобы он работал и в VBA. И если я изменяю мин на макс, он также находит неправильную дату. Но если я вместо этого напишу:
Mn = Application.Match(Application.Max(Range("D2:D18288")), Range("D2:D18288"))
Показывает правильную дату, но мне нужно найти минимальную дату, а не максимальную, и когда я изменяю максимальное значение на минимальное, я получаю ошибку несоответствия типов. Я действительно не знаю, что случилось, действительно надеюсь, что кто-то может мне помочь!