Excel VBA - заменить текст в столбце таблицы - PullRequest
0 голосов
/ 03 июня 2019

У меня есть макрос, который вставляет даты в виде текста в столбце, и я где-то читал. Лучшее решение для преобразования текста обратно в даты - выполнить поиск и заменить "/".

Если я делаю это вручную в Excel, это работает очень быстро. Однако, когда я пытаюсь сделать это с помощью макроса, я не вижу ячеек, конвертируемых в даты.

Это то, что дал мне рекордер макросов и что я пытаюсь использовать:

Range("t_drill[Date]").Replace What:="/", Replacement:="/", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Использование TextToColumns для преобразования даты:

Это для формата даты DMY, если вы используете другой формат даты, вам придется внести корректировки.

Range("t_drill[Date]").TextToColumns Destination:=Range("t_drill[Date]"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 4), TrailingMinusNumbers:=True

Чтобы настроить дляразличные форматы даты изменяются по мере необходимости:

MDY : = Array (1, 3)

DMY : = Array (1, 4)

ГМ : = Массив (1, 5)

МОЙ : = Массив (1, 6)

DYM : = массив (1, 7)

YDM : = массив (1, 8)

0 голосов
/ 03 июня 2019

Попробуйте установить значение на возвращаемое значение CDate.Это также меняет форматирование ячейки.

Dim c As Variant: For Each c In Range("t_drill[Date]").Cells
    c.Value = CDate(c.Value)
Next c

Примечание: Первоначально я думал, что t_drill [Date] - это одна ячейка.Я обновил свой код, чтобы он работал для нескольких ячеек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...