Преобразование строки VBA в дату

У меня есть данные на листе Excel в следующем формате:

ItemCode                            DeliveryDate
5456987                              24.01.2009
5456988                                          
5456989                              12.24.2009
5456990                              12/24/2009

Я сохранил значения DeliveryDate в массиве. Мне нужно принять решение об основах даты, а затем распечатать результат на новом листе. Поэтому мне нужно преобразовать значения в массив:

Dim current as Date, highest as Date, result() as Date
For Each itemDate in DeliveryDateArray
    current = CDate(itemDate)
    if current > highest then
         highest = current
    end if
    ' some more operations an put dates into result array
Next itemDate
'After activating final sheet...
Range("A1").Resize(UBound(result), 1).Value = Application.Transpose(result)

К сожалению, функция CDate ()выдает ошибку:

Run-time error '13':

Type mismatch

Есть ли в VBA функция, которая может:

  • анализировать строку с любым форматом даты и возвращать объект даты для работы.
  • вернуть пустой объект даты, если строка пуста или искажена (для сравнения в цикле ).

Изменить:

Чтобы воспроизвести ошибку, просто запуститеmyDate = CDate("24.01.2009")

6
задан Community 9 July 2018 в 19:34
поделиться