Это, кажется, продолжение моего ответа на ваш предыдущий вопрос, но если так, то я думаю, вы не поняли, что я имел в виду. Я взял ваш код и исправил его своим предложением, но я не проверял его:
Public Sub VirgulaPunct()
Dim oRow As Range
Dim cell As Range
Dim i As Long, j As Long
Dim MyString As String
Dim aux As String
Application.ScreenUpdating = False
For i = Selection(Selection.Count).Row To Selection.Cells(1, 1).Row Step -1
For j = Selection(Selection.Count).Column To Selection.Cells(1, 1).Column Step -1
MyString = Cells(i, j).Value
MyString = Replace(MyString, ",", ";+;", 1)
MyString = Replace(MyString, ".", ",", 1)
MyString = Replace(MyString, ";+;", ".", 1)
Cells(i, j).Value = MyString
Next j
Next i
Application.ScreenUpdating = True
End Sub
Итак, как я сказал в своем предыдущем ответе, я делаю 3 вызова Replace
, но я делаю их для всей строки, а не для каждого символа в строке.
Для дальнейшего использования, вероятно, было бы лучше, если бы вы обновили свой оригинальный вопрос, а не создали новый, и тогда вы могли бы оставить для меня комментарий под моим ответом, и я увидел, что вы это сделали.