VBA ориентирован на US-EN, и когда речь идет о датах, он хочет принять MM/DD/YYYY
, когда пытается преобразовать строку в дату.
Сначала мы хотим форсировать дату, анализируя строку, поступающую из текстового поля:
Cells(emptyRow, 1).Value = DateSerial(Split(DateBox.Value,"/")(2),Split(DateBox.Value,"/")(1),Split(DateBox.Value,"/")(0))
Затем отформатируйте ячейку после разбора даты:
Cells(emptyRow, 1).NumberFormat = "d/m/yy"
Или рассмотрите возможность использования более приемлемого формата для даты dd mmm, yyyy
в вашем поле с датами. Это делает его менее двусмысленным.
Спасибо Крису Нилсену за помощь.