Vba excel заменить все запятые

I am fairly new to VBA and have been writing a script that does certain checks and corrections to Excel-files. I am trying to find a way to replace all commas with dots in the workbook but without success. I have tried using the Replace-method but somehow it screws up my workbook even more. I think the problem has something to do with the local settings for decimal separators.

Row = lRow
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Do While Row >= 2
    Range("P" & Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns

    Row = Row - 1
Loop
Row = lRow

Do While Row >= 2
    Range("Q" & Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns
    Row = Row - 1
Loop
Row = lRow

The loop is supposed to replace all commas with dots in columns P and Q. But instead of dots dashes appear.

asked Jul 12, 2018 at 6:08

Olli Kortelahti's user avatar

2

your entire shown code should boil down to:

Range("P1:Q" & Cells(Rows.Count, 1).End(xlUp).Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns

answered Jul 12, 2018 at 6:51

DisplayName's user avatar

DisplayNameDisplayName

13.2k2 gold badges11 silver badges19 bronze badges

I guess you’re trying to change the European decimals format to US decimals format. Like 123.456,00 to 123,456.00. The settings for decimal separators may matter.

If your code doesn’t work, you need to check the original value in the cells. I suggest to compare .Value, .Value2 and .Text first.

answered Jul 12, 2018 at 6:59

Bruce Huang's user avatar

Bruce HuangBruce Huang

1432 silver badges9 bronze badges

Как показано на левом снимке экрана, как заменить запятые на новые строки в ячейках в Excel? Методы, описанные в этой статье, могут вам помочь.

Замени запятых на новые строки с помощью функции поиска и замены
Замените запятые на новые строки кодом VBA


Замени запятых на новые строки с помощью функции поиска и замены.

Вы можете применить функцию «Найти и заменить», чтобы заменить все запятые в выбранных ячейках символами новой строки. Пожалуйста, сделайте следующее.

1. Выберите ячейки, в которых вы замените все запятые на новые строки. Затем нажмите Главная > Найти и выбрать > Замените. Смотрите скриншот:

Примечание: вы также можете нажать кнопку Ctrl + H , чтобы открыть Найти и заменить диалоговое окно.

2. В дебюте Найти и заменить диалоговое окно и под Замените вкладка, вам необходимо:

2.1 Введите запятую в Найти то, что коробка;

2.2 Нажмите на Замените с коробкой, затем нажмите Ctrl + Shift + J ключи одновременно;

2.3 Щелкните значок Заменить все кнопка. Смотрите скриншот:

3. Затем Microsoft Excel всплывает окно подсказки, нажмите OK кнопку.

4. Закрой Найти и заменить диалоговое окно.

Теперь все запятые в выбранных ячейках заменены новыми строками.


Замените запятые на новые строки кодом VBA

В этом разделе будет представлен код VBA для замены всех запятых в выбранных ячейках на новые строки. Пожалуйста, сделайте следующее шаг за шагом.

1. Выделите ячейки, содержащие запятые, которые необходимо заменить символами новой строки, затем нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте код VBA в окно кода. Смотрите скриншот:

Код VBA: заменить все запятые в выбранных ячейках символами новой строки

Sub ReplaceComma()
Dim rngCell As Range
  For Each rngCell In Selection
    rngCell.Value = Replace(rngCell, ",", vbLf)
  Next
End Sub

3. нажмите F5 или нажмите кнопку «Выполнить», чтобы запустить код. Затем все запятые в выбранных ячейках немедленно заменяются новыми строками.



Связанная статья:

  • Как заменить последнюю запятую на и в ячейках в Excel?
  • Как разбить содержимое многострочной ячейки на отдельные строки / столбцы в Excel?
  • Как в Excel поместить несколько строк текста в одну ячейку?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (2)


Оценок пока нет. Оцените первым!

A_Qz

31 / 8 / 4

Регистрация: 21.01.2018

Сообщений: 53

1

Excel

Замена запятой на точку

09.12.2018, 11:23. Показов 20213. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Совсем маленький «зацеп». Несколько лет назад все работало как положено. А сегодня перестало.
Точку на запятую меняет. Все в порядке. По тексту:

Visual Basic
1
2
3
4
        sB = Application.ActiveWorkbook.ActiveSheet.Cells(iI, iJ).Value
        If sB = "" Or sB = " " Then sB = "0"
        sB = Replace(sB, ",", ".", , , 1)
        Application.ActiveWorkbook.Worksheets(1).Cells(iI, iJ) = Val(sB)

А вот обратно:

Visual Basic
1
2
3
4
        sB = Str(Application.ActiveWorkbook.ActiveSheet.Cells(iI, iJ).Value)
        If sB = "" Or sB = " " Then sB = "0"
        sB = Replace(sB, ".", ",", , , 1)
        Application.ActiveWorkbook.Worksheets(1).Cells(iI, iJ) = sB

запятая остается. Только содержимое ячейки переводит в текстовый формат, но запятая без изменении. Пробовал предварительно форматировать в текстовый, но ничего. Создается впечатление, где-то в VBA крепко зашита автозамена точки на запятую. Спасибо за объяснение.



1



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

09.12.2018, 11:23

4

1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

09.12.2018, 17:33

2

Лучший ответ Сообщение было отмечено A_Qz как решение

Решение

A_Qz, видимо в настройках экселя Пуск — Настройка — Дополнительно стоит галка Использовать системные разделители, а в винде разделитель запятая. Либо исправить в винде, либо здесь убрать галку и в Разделитель … поставить точку.



1



A_Qz

31 / 8 / 4

Регистрация: 21.01.2018

Сообщений: 53

09.12.2018, 21:51

 [ТС]

3

Спасибо за подсказку, убрал галку — «Использовать системные разделители». Win не трогал. Меняет запятую на точку, но только, если в Excel разделитель — запятая, то для того, чтобы была поставлена точка, ячейку обязательно предварительно нужно перевести в текстовый формат:

VB.NET
1
2
        Cells(iI, iJ).Select
        Selection.NumberFormat = "@"



0



Burk

1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

10.12.2018, 05:40

4

A_Qz,

Цитата
Сообщение от A_Qz
Посмотреть сообщение

Excel разделитель — запятая, то для того, чтобы была поставлена точка, ячейку обязательно предварительно нужно перевести в текстовый формат:

Так надо поставить разделитель — точку и всё работает, привожу макросы, на которых проверял

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub From()
'Dim sB As String
        sB = Application.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value
        If sB = "" Or sB = " " Then sB = "0"
        sB = Replace(sB, ",", ".", , , 1)
        Worksheets(1).Cells(1, 1) = Val(sB)
End Sub
 
Sub From2()
        sB = Str(Application.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value)
        If sB = "" Or sB = " " Then sB = "0"
        sB = Replace(sB, ".", ",", , , 1)
        Application.ActiveWorkbook.Worksheets(1).Cells(1, 1) = Val(sB)
End Sub

Добавлено через 24 минуты
A_Qz, что-то ошибся (точка на запятую), плохо проверил, а вот так вроде работает

Visual Basic
1
2
3
4
5
6
7
Sub From2()
        Dim sB As String
        sB = Application.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value
        If sB = "" Or sB = " " Then sB = "0"
        sB = Replace(sB, ".", ",", , , 1)
        Application.ActiveWorkbook.Worksheets(1).Cells(1, 1) = sB
End Sub



0



A_Qz

31 / 8 / 4

Регистрация: 21.01.2018

Сообщений: 53

10.12.2018, 18:40

 [ТС]

5

Это все понятно. Но мне нужно было, что бы при разделителе — запятая, сохранялась после замены точка. С тем, что бы я мог этот файл экспортировать в другие программы, где разделитель — точка. Ход действий был такой: убрал галку «Использовать системные разделители» и поправил код

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
          Cells.Select
          Selection.NumberFormat = "@"
          For iI = 1 To iR
            For iJ = 1 To iC
              sB = CStr(Workbooks.Application.Selection.Cells(iI, iJ))
              sB = Replace(sB, ",", ".", 1, -1, 1)
              Workbooks.Application.Selection.Cells(iI, iJ) = sB
            Next iJ
          Next iI
        End If
        Selection.NumberFormat = "General"
        Cells(1, 1).Select

В этом коде все работает так, как мне надо. sB была определена как String ранее.
При смене точки на запятую код такой:

VB.NET
1
2
3
4
5
6
7
8
9
          Cells.Select
          Selection.NumberFormat = "General"
          For iI = 1 To iR
            For iJ = 1 To iC
              sB = Workbooks.Application.Selection.Cells(iI, iJ)
              If sB = "" Or sB = " " Then Workbooks.Application.Selection.Cells(iI, iJ) = "0"
              Workbooks.Application.Selection.Cells(iI, iJ) = Workbooks.Application.Selection.Cells(iI, iJ).Value
            Next iJ
          Next iI

Спасибо ещё раз.



0



 

Артём Москвитин

Пользователь

Сообщений: 46
Регистрация: 06.02.2021

#1

08.02.2022 11:27:32

Здраствуйте уважаемые форумчане, проблема в следующем: в прайс-листе нужно заменить символ , (запятая) на . (точку) в столбцах M, P, T,  Поделитесь пожалуйста формулой или макросом, а то работала встала, вот этот макрос почему то не работает, всю голову уже сломал!

Код
Sub Символ()
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart
End Sub

Прикрепленные файлы

  • Лист Microsoft Excel.xlsx (10.12 КБ)

 

отмечаете 3 названных столбца, Ctrl+H
в поле найти ,
в поле наменить на .
параметры, чнимаете птичку ячейка целиком
Заменить все
—————————
готово
сделаете это быстрее, чем я писал как это сделать

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Со столбцом M так не получается, он выдаёт не понять что, даже если формат ячеек изменить!

 

да, умеет Excel на лету преобразовать данные («помочь пользователю»), вы ему 2.3, а он вам в ответ на это 02.03.2022
сначала задаете формат ячеек (Текс), потом проводите замену
и вообще, я обычно ищу решение пока задача не будет решена точно и окончательно

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#5

08.02.2022 14:34:56

Артём Москвитин,

Цитата
Ігор Гончаренко: умеет Excel на лету преобразовать данные («помочь пользователю»), вы ему 2.3, а он вам в ответ на это 02.03.2022

верно, если точка является разделителем даты на компе (для русской локали обычно так и есть)

Цитата
Ігор Гончаренко: сначала задаете формат ячеек (Текс), потом проводите замену

а вот это не так. Excel всё равно преобразует в дату и плевать он хотел на текстовый формат

Итого:

если нужно изменить, но не получить при этом дату, то только макросом (или добавлять, например, «_» перед данными, чтобы однозначно отнести их к тексту)
ИЛИ изменить региональные настройки даты на компе, чтобы Excel перестал воспринимать точку как разделитель для дат (попутно станет намного проще работать с «забугорными» числами ведь там разделитель десятичной части тоже точка)

Путь и скрин приведён для Win10 Pro

Изменено: Jack Famous08.02.2022 14:43:25

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

_Igor_61

Пользователь

Сообщений: 3007
Регистрация: 18.07.2016

#6

08.02.2022 15:17:18

Цитата
Jack Famous написал:
Excel всё равно преобразует в дату и плевать он хотел на текстовый формат

Сталкивался, согласен с выводом.
Поэтому стараюсь пользоваться наименьшими (т.е. простейшими способами) — что было MS-ом заложено в 2003 и ранее, проще макрос записать чем разбираться во всех предложениях производителей (это практически невозможно — предложений больше чем задач). Сейчас существует много новых функций и прибамбасов, но все это можно делать теми же старыми средствами (это про макросы и формулы). Другой вопрос — удобство пользования. Другая сторона удобства — новые плюшки создают новые проблемы (в основном конечно типа «почему в инсте у меня буквы такие, а в Excel другого цвета, или «почему на моем компе с 365 работает, а на других компах не работает»).
Артем, отсюда вывод: нужно изучать возможности приложений, т.к. один ответ ответ с форума, который выполняет одну конкретную озвученную в теме задачу совсем не означает, что в других условиях он будет полезен  :)  ИМХО

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#7

08.02.2022 16:04:56

Цитата
Jack Famous написал:
если нужно изменить, но не получить при этом дату, то только макросом (или добавлять, например, «_» перед данными, чтобы однозначно отнести их к тексту

Есть ещё вариант, выделяем столбец в Excel —>Ctrl+C, открываем в Word —> Ctrl+V, —> Ctrl+H с запятой на точку, —>Ctrl+C, возвращаемся в Excel, меняем формат столбца на Текстовый и вставляем только значения. И чудо!!!

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#8

08.02.2022 16:16:50

Цитата
Msi2102: меняем формат столбца на Текстовый и вставляем только значения. И чудо!!!

чудес не бывает. Взрослый дядя, а всё верите  :)
Специальная вставка значений в «подготовленный» столбец всегда работала и необязательно менять в ворде — тут и простой блокнот подойдёт
Только дело в том, что способ этот не назвать быстрым и куда проще (как мне кажется) попросить макрос в пару строк кода для постоянного применения, ну или изменить регионалки, как сделал я у себя

Изменено: Jack Famous08.02.2022 16:17:16

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Артём Москвитин

Пользователь

Сообщений: 46
Регистрация: 06.02.2021

#9

08.02.2022 16:22:46

Цитата
написал:
Итого: если нужно изменить, но не получить при этом дату, то только макросом (или добавлять, например, «_» перед данными, чтобы однозначно отнести их к тексту)

Макрос случаем не знаете? Макрос который я выложил он работает, но почему то с этим прайсом не хочет!  

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#10

08.02.2022 16:32:52

Цитата
Артём Москвитин: Макрос случаем не знаете?

ещё как знаю — как раз писал, раз сказал
Сделал не «в лоб», а как положено, поэтому получилось не в «пару строк»  :D

Макрос для выделенного диапазона. Поддерживает несколько областей

Принцип:

цикл по всем областям выделенного диапазона; если в области хоть в одной ячейке есть запятая, то меняет формат всей области на текстовый и вставляет значения всей области (заменив перед этим нужные, разумеется) в «подготовленное место»
Менять формат выборочно для каждой нужной ячейки будет заметно дольше по времени

Можно, конечно, ещё выяснять кодом, какие разделители допустимы для даты на устройстве — может и формат менять не придётся, но тогда ещё больше кода будет, да и не для вашего случая  :)

Изменено: Jack Famous08.02.2022 16:42:40

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

_Igor_61

Пользователь

Сообщений: 3007
Регистрация: 18.07.2016

Артем, Вы выложили одну строчку кода а файл xlsx, в таких файлах макросы не живут. Если действительно хотите решить задачу — покажите в файле xlsm что именно и где не так. Не исключено, что дело не в точках и запятых. Если проблема в точках и запятых — внимательно прочитайте #2. Если не поможет — рассказывайте и показывайте что и как не получается. Если уж работаете с макросами, то не исключено, что что-то на проблемный столбец влияет

 

Артём Москвитин

Пользователь

Сообщений: 46
Регистрация: 06.02.2021

#12

08.02.2022 16:39:43

Цитата
написал:
ещё как знаю — как раз писал, раз сказал

Благодарю Вас, Спасибо большое, всё работает! Кучу времени сэкономили )))

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Артём Москвитин, пожалуйста — обращайтесь  ;)

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#14

08.02.2022 17:00:11

Цитата
Jack Famous написал:
Взрослый дядя, а всё верите

Я ж это не для Вас пишу, что чудо, а чудо для многих по ту сторону экрана, которые сидят и в панике пытаются, что-то сделать, а на форуме никто не отвечает или вставили макрос, один раз попользовались и забыли где он лежит и всё, нужно заново тему создавать на форуме, ведь искать старую никто не будет. А копипастить умеют большее количество людей.

Цитата
Jack Famous написал:
Только дело в том, что способ этот не назвать быстрым и куда проще (как мне кажется)

Проще именно для Вас, но не для пользователя, который не знает, что с этим макросом делать и куда его вставлять.

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#15

08.02.2022 17:19:16

Цитата
Msi2102: Проще именно для Вас, но не для пользователя, который не знает, что с этим макросом делать и куда его вставлять

всё он знает — вы вообще читаете тему?  :D

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#16

08.02.2022 17:27:04

Цитата
Jack Famous написал: вы вообще читаете тему?

А Вы? Первым предложил копипастить Ігор Гончаренко, я лишь предложил вариант который сработает

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#17

08.02.2022 17:53:14

Цитата
Msi2102: Первым предложил копипастить  Ігор Гончаренко

да что вы говорите — ну почитайте ещё раз  :D

#2

#4

и да — выполнить макрос, который мгновенно выдаст результат куда проще, чем копипастить данные между приложениями и производить замены руками  ;)

Изменено: Jack Famous08.02.2022 17:56:20

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#18

08.02.2022 18:14:57

Цитата
Msi2102 написал:
Первым предложил копипастить

Ошибся, нужно было CTRL+H

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Msi2102, это неважно на самом деле
Больше вариантов — всегда хорошо  :)
Важно было поправить насчёт нюансов замены

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Anchoret

Пользователь

Сообщений: 1059
Регистрация: 01.01.1970

Anchoret

#20

09.02.2022 03:34:00

Jack Famous, для обхода Selection Areas не нужны.
В качестве примера:

Код
Sub aaa()
Dim RR As Range
Selection.Parent.UsedRange.Interior.Color = xlNone
For Each RR In Selection.Cells
  Debug.Print RR: RR.Interior.Color = vbYellow
Next
End Sub
 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#21

09.02.2022 08:18:59

Цитата
Anchoret: для обхода Selection Areas не нужны

спасибо — я в курсе))
Просто мой код на массивах, что даст заметный прирост в скорости, если в областях будет много ячеек

Поячеечный перебор — это как раз подход «в лоб»

Изменено: Jack Famous09.02.2022 08:19:42

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

Я хочу использовать этот код VBA в своем листе, чтобы заменить любые запятые в столбце D с полной остановкой:

ActiveSheet.Columns("D").Replace _
What:=",", Replacement:=".", _
SearchOrder:=xlByColumns, MatchCase:=True

У меня это работало, я уверен, на минуту, но потом это не так! Есть идеи???

2013-07-10 16:17

3

ответа

Вы сказали в комментарии, что вы положили код в Worksheet_SelectionChange, Вместо этого поместите код в модуль, затем запустите его, когда захотите его использовать. Тогда это будет работать для любого листа.

2013-07-10 16:29

Вы уже заменили все запятые, это не сработает снова.

2013-07-10 16:22

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveSheet.Columns("D").Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns, MatchCase:=True

End Sub

Это работает так. Не добавляйте «_»

2013-07-10 16:20

Понравилась статья? Поделить с друзьями:
  • Vba excel если if счетесли
  • Vba excel замена части строки
  • Vba excel доступ к таблице
  • Vba excel замена символа строке
  • Vba excel дождаться выполнения