2014-11-03 5 views
0

У меня есть следующий тип Timestamp в CSV-файла с несколькими тысячами строк:Преобразование Отметка текста в формат даты с помощью VBA

Oct 1, 2014 - 06:22:25 

Теперь я знаю, что я могу извлечь данные с помощью формул, и что я мог теоретически это делают и в VBA. Однако это кажется довольно грязным решением для выписывания всех функций Worksheetapplication.

Есть ли стандартная функция, которая позволила бы мне это сделать? Я надеялся, что кто-то может осветить этот свет для меня?

+1

Параметр '' LEFT' и функции рабочего листа родной DATEVALUE' также доступны в виде команд родной VBA. – Jeeped

ответ

0

Если я правильно понял ваш вопрос, вам не нужна vba. Вы можете сделать это с помощью формулы ... Я преобразовал вашу строку в формат даты.

A1 = Oct 1, 2014 - 06:22:25
B1 = =TEXT(DATEVALUE(MID(A1,1,FIND("-",A1)-2)),"dd/mm/yy")

Надежда, что помогает

+0

Я бы не конвертировал значение datevalue в текст - оставьте его как дату, а затем отформатируйте ячейку – SeanC

+0

тема говорит о преобразовании в формат даты. Я не очень хорошо понял это решение. То, что вы сказали, может быть выполнено ... = DATEVALUE (MID (A1,1, FIND («-», A1) -2)), а затем форматирует ячейку, как хочет OP. –

0

2 простых способов сделать это. В обоих случаях MS легко преобразует вашу строковую дату в истинную, пока вы избавитесь от дефиса. Оба эти решения имеют встроенные формулы/функции.

формула:

=REPLACE(A1,FIND("-",A1),1,"") 

VBA:

Function GetDate(sDate As String) As Date 
    GetDate = CDate(Replace(sDate, "-", "")) 
End Function 
+0

Спасибо за помощь, но это решение не работает для меня, потому что моя версия Excel не является английской. Таким образом, Excel автоматически не распознает формат даты. DATEVALUE дает мне ошибку. Эта проблема также появляется, если я попытаюсь сделать это через Формулу. – rohrl77

+0

Образец, который вы дали, выглядит так же, как и США. Изменились ли аббревиатуры месяца? Если да, то на каком языке? –

Смежные вопросы