Дата преобразования из д / м / гг чч: мм тт в дд / мм / ггг чч: мм - PullRequest
0 голосов
/ 01 апреля 2019

Как можно преобразовать дату в Excel из 1/4/19 1:00 PM в 01/04/2019 13:00.

Дата сохраняется в виде строки, поскольку файл экспортируется из приложения в виде XLS (нет способаизменить источник)

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Ниже приведено изображение рабочего процесса для преобразования вашей даты из одного формата в другой.Это завершает, подставляя все вспомогательные ячейки в одну формулу в конце.трудно читать, но делает работу.

Answer

Понимание даты и времени в Excel

Дата

Excel сохраняетдата как целое числоЭто число дней с 0 января 1900 года. Итак, 1 - 1 января 1900 года. (Я считаю, что на Mac базовый год - 1905, но я могу ошибаться).Таким образом, все даты в Excel просто целые числа с некоторым специальным форматированием, применяемым для их отображения таким образом, который мы привыкли видеть.Вы можете проверить это, набрав 1 в пустой ячейке, а затем изменив формат ячеек с даты на общий.Поэтому, если вам нужно просто найти дату по смешанной дате, вам нужно убрать только целую часть.

ВРЕМЯ

Время хранится в% от дня или, если вы предпочитаетедесятичное число дня.0,5 представляет полдня или обед.Опять же, это можно проверить, введя 0.5 в пустой ячейке, а затем изменив формат ячейки с General на Time.Если вам просто нужно время, вам просто нужно удалить десятичную часть.

Объединенные дата и время

Исходя из вышеизложенного, вы знаете, что дата является целым числом, а время - этодесятичный.Чтобы объединить их, их просто нужно сложить вместе.В С21 определяется только дата.В С22 определяется только время.В C23 два элемента просто добавляются вместе, и применяется нестандартный формат ячейки YY / MM / DD HH: MM.Важное различие между C23 и C28 состоит в том, что C23 - это число, а C28 - это текст.

0 голосов
/ 01 апреля 2019

Если у меня есть дата, которая отображается в виде строки, я обычно использую TextToColumns, чтобы она распознала дату, а затем применяю форматирование по желанию.Код, который я запускаю для каждого столбца:

Columns("D").TextToColumns DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False

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

Тогда форматирование будет примерно таким:

Columns("D").NumberFormat = "MM/dd/yyyy HH:mm""

Edit1:

Общий формат подпрограммы выглядит следующим образом:

Sub NameofMacro()
    Columns("D").TextToColumns DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False
    Columns("D").NumberFormat = "MM/dd/yyyy HH:mm""
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...