Вот решение:
Прежде всего, если вы хотите, чтобы убедиться, что значение, которое вы вставляете действительно дата сделать простой тест:
If IsDate(valueToInsert) Then
Затем изменить фактическое номер формата ячейки вы хотите вставить в таблицу (WS):
WS.Range(WS.Cells(row, col).Address).NumberFormat = "dd/MM/yyyy" 'for example
Все, что вам нужно сделать сейчас, это вставить значение кор прямо в ячейке, которую вы отформатировали выше:
WS.Cells(row, col) = CDate(Format(valueToInsert, "dd/MM/yyyy")) 'same dateformat
Ниже приводится полное решение.
If IsDate(valueToInsert) Then
WS.Range(WS.Cells(row, col).Address).NumberFormat = "dd/MM/yyyy"
WS.Cells(row, col) = CDate(Format(valueToInsert, "dd/MM/yyyy"))
Else
WS.Cells(row, col) = valueToInsert
End If
Я надеюсь, что это может помочь кому-то, как это мне помогло :)
Здравствуйте MatthewD спасибо за быстрый ответ. Так я раньше его кодировал, но это не сработало. Я должен был сделать дополнительный шаг и фактически преобразовать szDate в Date, используя CDate. – dagadbm
Вы можете попробовать объявить его как дату. Dim dDate в качестве даты. Это может спасти конверт. – MatthewD