Добрый день, светлые головы. Всем кабинетом сидим ломаем голову, без Вас опять никак. Проблема у нас - при выгрузке из программы отчёта получаем список позиций и вес. Хотим узнать общий вес, но часть цифр у нас сохраняются с пробелами и приходится их править руками. На правку уходит около получаса. Подскажите, пжл, может, какую формулу знаете, чтоб ускорить процесс?
Добрый день, светлые головы. Всем кабинетом сидим ломаем голову, без Вас опять никак. Проблема у нас - при выгрузке из программы отчёта получаем список позиций и вес. Хотим узнать общий вес, но часть цифр у нас сохраняются с пробелами и приходится их править руками. На правку уходит около получаса. Подскажите, пжл, может, какую формулу знаете, чтоб ускорить процесс?ЩтуКув
В столбце "B" находится неразрывный пробел, у которого код 160. Формула удаляет этот пробел.
Можно удалить этот пробел без формулы сразу в столбце "B": скопируйте пробел из какой-либо ячейки столбца "B" - выделите столбец "B" - вызовите диалоговое окно "Найти и заменить" - в поле "Найти" вставьте из буфера обмена скопированный пробел - поле "Заменить" должно быть пустым - Заменить все.
Вариант с использованием макроса, если такое действие надо делать часто. Выделять нужно один или несколько смежных столбцов. Макрос работает именно со столбцами, а не просто с выделенными фрагментами.
Sub Удалить_неразрывные_пробелы()
Dim arr(), lr AsLong, i AsLong, j AsLong
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 = 2ToUBound(arr, 1) For j = 1ToUBound(arr, 2)
arr(i, j) = Replace(arr(i, j), Chr(160), "") IfIsNumeric(arr(i, j)) Then arr(i, j) = CDbl(arr(i, j)) Next j Next i
Selection.Rows(1).Resize(lr).Value = arr()
MsgBox "Готово.", vbInformation
EndSub
Для допстолбца и ячейки "C2":
=--ПОДСТАВИТЬ(B2;СИМВОЛ(160);"")
В столбце "B" находится неразрывный пробел, у которого код 160. Формула удаляет этот пробел.
Можно удалить этот пробел без формулы сразу в столбце "B": скопируйте пробел из какой-либо ячейки столбца "B" - выделите столбец "B" - вызовите диалоговое окно "Найти и заменить" - в поле "Найти" вставьте из буфера обмена скопированный пробел - поле "Заменить" должно быть пустым - Заменить все.
Вариант с использованием макроса, если такое действие надо делать часто. Выделять нужно один или несколько смежных столбцов. Макрос работает именно со столбцами, а не просто с выделенными фрагментами.
Sub Удалить_неразрывные_пробелы()
Dim arr(), lr AsLong, i AsLong, j AsLong
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 = 2ToUBound(arr, 1) For j = 1ToUBound(arr, 2)
arr(i, j) = Replace(arr(i, j), Chr(160), "") IfIsNumeric(arr(i, j)) Then arr(i, j) = CDbl(arr(i, j)) Next j Next i
Selection.Rows(1).Resize(lr).Value = arr()
MsgBox "Готово.", vbInformation