Home > Enterprise >  VBA min start date displaying a number
VBA min start date displaying a number

Time:08-18

I have a column of dates in format dd/mm/yyyy and when I use the following code:

Sub DisplayDate()

MsgBox (WorksheetFunction.Min(Range("StartDate").EntireColumn))

End Sub

the result is 4442.7 which doesn't make sense as all entries in this column are either blank or in dd/mm/yyyy format. I'm trying to display the earliest date of the entire column. "StartDate" is the heading reference for that column, but this heading is in row 5 (there are four blank rows above it) It is working when the heading is not included i.e. taking from row 6 down, but I'm not sure how to code this using the name reference. I must use the name reference, not column number reference,

CodePudding user response:

Using strings, VBA is confused and try guessing what you try extracting (as date). The returned value means "28/02/1912 16:48:00", but it is a wrong guess...

Sub DisplayDate()
    MsgBox WorksheetFunction.Min(Range("StartDate").EntireColumn.Resize(Range("StartDate").rows.count - 1).Offset(1))
End Sub
  • Related