Добрый день, светлые головы. Всем кабинетом сидим ломаем голову, без Вас опять никак. Проблема у нас - при выгрузке из программы отчёта получаем список позиций и вес. Хотим узнать общий вес, но часть цифр у нас сохраняются с пробелами и приходится их править руками. На правку уходит около получаса. Подскажите, пжл, может, какую формулу знаете, чтоб ускорить процесс?
Добрый день, светлые головы. Всем кабинетом сидим ломаем голову, без Вас опять никак. Проблема у нас - при выгрузке из программы отчёта получаем список позиций и вес. Хотим узнать общий вес, но часть цифр у нас сохраняются с пробелами и приходится их править руками. На правку уходит около получаса. Подскажите, пжл, может, какую формулу знаете, чтоб ускорить процесс?ЩтуКув
В столбце "B" находится неразрывный пробел, у которого код 160. Формула удаляет этот пробел.
Можно удалить этот пробел без формулы сразу в столбце "B": скопируйте пробел из какой-либо ячейки столбца "B" - выделите столбец "B" - вызовите диалоговое окно "Найти и заменить" - в поле "Найти" вставьте из буфера обмена скопированный пробел - поле "Заменить" должно быть пустым - Заменить все.
Вариант с использованием макроса, если такое действие надо делать часто. Выделять нужно один или несколько смежных столбцов. Макрос работает именно со столбцами, а не просто с выделенными фрагментами.
[vba]
Код
Sub Удалить_неразрывные_пробелы()
Dim arr(), lr As Long, i As Long, j As Long
lr = Selection.EntireColumn.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Row arr() = Selection.Rows(1).Resize(lr).Value For i = 2 To UBound(arr, 1) For j = 1 To UBound(arr, 2) arr(i, j) = Replace(arr(i, j), Chr(160), "") If IsNumeric(arr(i, j)) Then arr(i, j) = CDbl(arr(i, j)) Next j Next i Selection.Rows(1).Resize(lr).Value = arr() MsgBox "Готово.", vbInformation
End Sub
[/vba]
Для допстолбца и ячейки "C2":
Код
=--ПОДСТАВИТЬ(B2;СИМВОЛ(160);"")
В столбце "B" находится неразрывный пробел, у которого код 160. Формула удаляет этот пробел.
Можно удалить этот пробел без формулы сразу в столбце "B": скопируйте пробел из какой-либо ячейки столбца "B" - выделите столбец "B" - вызовите диалоговое окно "Найти и заменить" - в поле "Найти" вставьте из буфера обмена скопированный пробел - поле "Заменить" должно быть пустым - Заменить все.
Вариант с использованием макроса, если такое действие надо делать часто. Выделять нужно один или несколько смежных столбцов. Макрос работает именно со столбцами, а не просто с выделенными фрагментами.
[vba]
Код
Sub Удалить_неразрывные_пробелы()
Dim arr(), lr As Long, i As Long, j As Long
lr = Selection.EntireColumn.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Row arr() = Selection.Rows(1).Resize(lr).Value For i = 2 To UBound(arr, 1) For j = 1 To UBound(arr, 2) arr(i, j) = Replace(arr(i, j), Chr(160), "") If IsNumeric(arr(i, j)) Then arr(i, j) = CDbl(arr(i, j)) Next j Next i Selection.Rows(1).Resize(lr).Value = arr() MsgBox "Готово.", vbInformation