ฟังก์ชัน Excels DateValue ขึ้นอยู่กับภูมิภาค หากคุณแยกวิเคราะห์สตริงเช่น "04-11-2008" ในยุโรปที่จะแยกวิเคราะห์เป็นวันที่ 4 พฤศจิกายนและในสหรัฐอเมริกาเมื่อวันที่ 11 เมษายน
ในการหลีกเลี่ยงปัญหานี้คุณสามารถใช้ฟังก์ชัน DateSerial และแยกวิเคราะห์ด้วยตัวเอง นอกจากนี้ยังสามารถปรับให้เข้ากับรูปแบบวันที่ที่ไม่ได้มาตรฐานของคุณได้อย่างง่ายดาย
' 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