Замена запятых точками

Жану нужно заменить запятые точками в таблице чисел. Он работает во Франции, используя французский компьютер, но ему нужно «перевести» эти числа для американского приложения, отличного от Excel. Когда он вручную выполняет поиск и замену, все работает хорошо. Конечно, его числа конвертируются в строки, но с Жаном это нормально. Когда он пытается выполнить ту же операцию поиска и замены в макросе, ничего не происходит; запятые вроде бы игнорируются. Джин задается вопросом, как он может выполнять эту задачу в макросе, вместо того, чтобы делать это каждый раз вручную.

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

Sub ChangeNumberFormat () с приложением .UseSystemSeparators = False If .DecimalSeparator = «.» Тогда .DecimalSeparator = «,» .ThousandsSeparator = «.» Иначе .DecimalSeparator = «.» .ThousandsSeparator = «,» End If End WithEnd Sub

Это изменяет способ отображения информации, и затем вы можете экспортировать информацию в любой желаемый формат, отличный от Excel (например, CSV). После этого запустите макрос еще раз, и ваши региональные настройки вернутся к исходным значениям. Преимущество этого подхода заключается в том, что вы никогда не меняете то, что находится в ячейках, а только то, как эта информация отображается. Это означает, что ваши числа остаются числами, которые можно продолжать использовать как таковые.

Если вам нужно что-то более непосредственное, то, вероятно, лучше не использовать «Найти и заменить». Вместо этого используйте макрос для непосредственного изменения содержимого каждой ячейки. Такой подход может работать намного быстрее, чем полагаться на поиск и замену, даже в макросе. Вот простое применение этой концепции:

Sub SwitchCommasPeriods () Dim c As Range Dim sTemp As String For Each c In Selection sTemp = c.Text sTemp = Replace (sTemp, «,», » | «) sTemp = Replace (sTemp,». «,», «) sTemp = Replace (sTemp,» | «,». «) c = sTemp Next cEnd Sub

Обратите внимание на пару вещи в макросе. Сначала он проверяет свойство Text для каждой ячейки. Причина в том, что свойство Text возвращает форматированное значение ячейки, другими словами, то, что отображается. (Если вы просто посмотрите на свойство Value, вы получите неформатированное число, которое вы не хотите использовать.)

Второе, на что следует обратить внимание, это то, что функция Replace используется для сначала замените все запятые вертикальной чертой, затем все точки запятыми и, наконец, все вертикальные черты точками. Этот подход необходим, потому что вы, по сути, меняете местами точки и запятые в тексте.

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

Источник: frestage.ru

Бытовой вопрос