Заменить "."с помощью макроса "/" в vba изменить порядок чисел - PullRequest
0 голосов
/ 24 сентября 2018

Мне нужно изменить "."с "/" с макросом в Excel vba, это работает, но когда я активирую макрос, он меняет значение ячейки с 10.11.2016 на 10.10.2016.Почему это меняет порядок?Ячейка не имеет формата.

Range("D1").Select
Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

1 Ответ

0 голосов
/ 24 сентября 2018

Ячейка не имеет формата, но она отражает формат из региональных настроек.Проверьте Панель управления | Часы и Регион | Регион .В тот момент, когда вы заменяете текст, он становится датой, а затем просто выбирает формат из региональных настроек.

Попробуйте это

With Range("D1")
    .NumberFormat = "@"
    .Value = Replace(.Value, ".", "/")
End With

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

Отлично, все работает!Но могу ли я заменить "."с "/" во всем столбце D с помощью этого метода без использования цикла?Если да, то как?Спасибо - Masca2056 7 минут назад

Попробуйте это.Я предполагаю, что 10 - последняя строка.

Sub Sample()
    Columns(4).NumberFormat = "@"
    [D1:D10] = [INDEX(SUBSTITUTE(D1:D10,".","/"),)]
End Sub

См. LINK для объяснения использования вышеупомянутого метода.

...