2014-10-29 3 views
0

У меня есть что-то похожее на нижеследующее.String to UK Формат даты

mth = 08 
dy = 12 
yr = 2014 
dt = dy & "/" & mth & "/" & yr 
Cells(i,j) = dt 

Когда запускается код, дата преобразуется в формат США, так на самом деле выглядит как ММДДГГГГ вместо ДДММГГГГА.

Как это исправить?

ответ

0

Просто запустите

Cells(i,j).NumberFormat = "dd mm yyyy" 

и shoould ок

0

Хотя у вас уже есть ответ, я брошу этот, как и мой предпочтительный метод:

Cells(i,j) = DateSerial(yr, mth, dy) 

Это должно избегать любого неожиданного форматирования, потому что вы не помещаете значения в строку и попросите VBA затем преобразовать строку в дату.

0

попробовать это:

Sub test() 

    Dim mth  As Integer 
    Dim dy  As Integer 
    Dim yr  As Integer 
    Dim dt  As Date 

    mth = 8 
    dy = 12 
    yr = 2014 
    dt = Format(DateSerial(yr, mth, dy), "dd mm yyyy") 
    Cells(1, 1) = dt 

End Sub 
0

Это зависит от того, что вы хотите с ним делать. Если вы собираетесь использовать его только для отображения, вы можете добавить значение с апострофом. Это дает указание Excel интерпретировать значение как текст.

dt = "'" & dy & "/" & mth & "/" & yr 

Если вы хотите сделать расчет даты (включая сортировку), вы можете использовать предлагаемые `функции Dateserial», но вы должны установить форматирование столбца в нужный формат, а в противном случае Excel будет использовать по умолчанию формат.

Cells(i,j).NumberFormat = "dd/mm/yyyy" 
Смежные вопросы