2016-08-01 6 views
0

У меня есть столбец с некоторым строковым значением в файле excel.Excel Macro для форматирования даты

Col A 
20131022082702 
20131022082702 
20131022082739 
20131022082739 

Я хочу преобразовать значение каждой ячейки в формат даты, например. YYYY/MM/DD HH:MM

20131022082702 // should be formatted as 2013/10/22 08:27 

мне было просто интересно, если есть какие-либо встроенной функции мы можем использовать, чтобы отформатировать его с помощью какой-то макрос?

Один из подходов, о котором я могу думать, - это взять подстроку и написать собственную логику в макросе. Любая другая работа вокруг этого будет очень признательна!

Спасибо за ваше время.

ответ

6

Если вы используете функцию рабочего листа TEXT, вы можете отформатировать его так, чтобы он выглядел как дата/время, а Excel преобразует его в «реальное» значение. После этого вы можете отформатировать его, как вы хотите:

=--TEXT(A1,"0000\/00\/00 00\:00\:00") 

EDIT: В VBA, можно использовать эту линию, чтобы сделать преобразование. Аналогичный алгоритм, но используя встроенные функции VBA:

cdate(format(N,"0000 00 00 00:00:00")) 

где N Ваш 14-значный номер

+0

Просто быстрый вопрос @Ron, могу ли я использовать ту же функцию в своем макросе? На самом деле я хочу иметь эту функциональность с помощью макроса. – Rockstar

+0

@Rockstar Вы можете, но я добавлю метод, который использует собственные функции VBA –

+0

Спасибо @Ron, очень ценю вашу помощь! – Rockstar

1

Более многословно, чем @ ответ Рона, но другой метод разделения строки из:

=TEXT(DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))+TIME(MID(A1,9,2),MID(A1,11,2),MID(A1,13,2)),"dd/mm/yyyy hh:mm") 
Смежные вопросы