Hàm Excels DateValue phụ thuộc vào vùng. Nếu bạn phân tích một chuỗi như "04-11-2008" ở Châu Âu sẽ được phân tích thành ngày 4 tháng 11 và ở Hoa Kỳ là ngày 11 tháng 4.
Để giải quyết vấn đề này, bạn có thể sử dụng hàm DateSerial và tự mình phân tích cú pháp. Điều này cũng có thể dễ dàng thích nghi với định dạng ngày không chuẩn của riêng bạn.
' Region independent date parsing
' Expects a datetimestr in the format "04-11-2008 21:39:39"
' The function VBA.DateTime.DateValue() mixes up the date and month in different regions
Function parseDateTime(dateTimeStr As String) As Date
Dim parts As Variant
parts = VBA.Strings.Split(dateTimeStr, " ")
Dim datePart As String, timePart As String
datePart = parts(0)
timePart = parts(1)
Dim dateParts As Variant, day As Integer, month As Integer, year As Integer
dateParts = VBA.Strings.Split(datePart, "-")
day = dateParts(0)
month = dateParts(1)
year = dateParts(2)
Dim parsed_date As Date, parsed_time As Date
parsed_date = VBA.DateTime.DateSerial(year, month, day)
parsed_time = VBA.DateTime.TimeValue(timePart)
parseDateTime = parsed_date + parsed_time
End Function