Я не могу понять, как сообщить VBA правильный формат даты, так как кажется, что он ошибается. Таким образом, CDate("24/02/2016 10:59")
дает правильную дату - дд/мм/гггг. Однако, когда он выполняет итерацию через дату, например, CDate("01/03/2016 00:59")
, он предполагает, что номер 03 - это не месяц, а день, поэтому VBA предполагает, что это mm/dd/yyyy
, поэтому он дает мне дату 03/01/2016
, что неправильно и беспорядок моих данных. Итак, как я могу сказать VBA, что это действительно формат dd/mm/yyyy. Кажется, что VBA автоматически подбирает красиво, даже если это "2016/01/14"
, но это не удается, когда не совсем очевидно, какая часть чисел составляет месяцы, например. оба и mm
составляют менее 12.Определенный пользователем формат даты в VBA Access
Я читаю эту дату из CSV-файла, используя WS.Cells(irow, icol).Value
.
Это то, что я пытался до сих пор:
datDate = CDate(Format(WS.Cells(iRow, iCell).Value, "dd-mmm-yyyy hh:mm:ss"))
Я почти уверен, что это связано с ваши региональные настройки даты (я полагаю, вы находитесь за пределами США, правильно?). Стандартный формат даты в США - 'mm/dd/yyyy', а VBA ** использует этот формат **, даже если региональные настройки в приложении Excel отличаются.Скорее всего, вам нужно будет проанализировать дату, чтобы убедиться, что вы получите правильный месяц и день, как @Gustav предложил ниже. –