Как избежать форматирования данных при замене текста VBA? - PullRequest
0 голосов
/ 13 февраля 2020

Я новый пользователь! Я давно пользуюсь VBA, но сейчас мне нужна ваша помощь.

Я написал макрос и, среди прочего, он должен находить и заменять текст в столбце. Первоначально в столбце был текст, написанный следующим образом: «24.12.2019». Я пытаюсь найти "." и замените его на "/".

. Тем не менее, VBA пытается преобразовать его в дату (формат ENG мм / дд / гггг). Очевидно, что когда день больше 12, он сохраняется в виде текста.

Что ж, я бы хотел сохранить формат как "dd / mm / yyyy" и избегать VBA для преобразования диапазона.

("SearchFormat:=False, ReplaceFormat:=False" не получается)

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Если вы хотите, чтобы Excel распознал данные как дату, но в формате ДД / ММ / ГГ, ниже описано, как вы это сделаете. Просто измените выделенную Columns("A:A") часть и конечный `Range (" A1 ")

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

Columns("A:A").NumberFormat = "dd/mm/yy;@" ' or "dd\/mm\/yy;@" depending on region
0 голосов
/ 13 февраля 2020

Чтобы Обязать Excel сохранять текст в столбце, необходимо заменить этот фрагмент кода перед заменой существующего текста:

Dim sh As Worksheet
   Set sh = ActiveSheet 'use here your sheet
   sh.Range("E:E").TextToColumns Destination:=sh.Range("E1"), FieldInfo:=Array(1, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...