Страницы: 1
RSS
Неразрывный пробел в макросе.
 
Получаем от поставщиков файл.
Большие суммы разделяются неразрывным пробелом и точкой разряды.(столбец А)
Авторекодером написал замену точки на запятую и пробел на пустоту. (столбец С)
Код
Sub Макрос3()
'
' Макрос3 Макрос

    Columns("G:G".Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Все хорошо отработало.
Но когда стал запускать его на выполнения, то отработав все цифры приобретают значок ошибки и прижимаются влево ( столбец G)
Как победить ошибку?
Изменено: угрюмый - 03.06.2014 14:41:11
 
Попробуйте так:
Код
Sub Макрос3()
    On Error Resume Next
    With Intersect(Columns("G:G"), ActiveSheet.UsedRange)
        .Replace ",", ".", xlPart        ' меняем ЗАПЯТУЮ на ТОЧКУ (а не наоборот)
        .Replace " ", "", xlPart        ' пробел удаляем
        .Replace Chr(160), "", xlPart        ' неразрывный пробел удаляем

        .NumberFormat = "0.00"        ' формат ячеек
        .Value = .Value ' на всякий случай
    End With
End Sub 
Изменено: Игорь - 03.06.2014 13:08:03
 
Большое спасибо! Все получилось!!
Магия макросов рулит и педалит))))
Изменено: угрюмый - 03.06.2014 13:12:35
 
Я бы делал где-то так:

Код
    sep_ = Mid(1 / 2, 2, 1)
    With Columns("A:A")
        .Replace What:=".", Replacement:=sep_, LookAt:=xlPart
        .Replace What:=Chr(160), Replacement:="", LookAt:=xlPart
    End With
 
т.к. исходная точка известна, а вот что там у юзера - это неизвестно. У меня например тоже точка.
Страницы: 1
Читают тему
Наверх