Страницы: 1
RSS
Нестираемые пробелы. Как удалить массово?
 
Добрый день,

Столкнулась с проблемой, что б в Эксель-файле, который я получаю из разных источников ( его заполняют множество разных специалистов из другого отдела) в некоторых ячейках, стоят в конце кода "пробелы", которых никак стереть.
То есть эксель не видит это "нечто" как знак пробела ( "Find and Replace" даже если копирую пробел с ячейки копируется цифра, "Text to column" не помогают его стереть) а при попытке стереть его вручную, стирается последняя цифра  !

До меня работал человек, которая просто вручную перепечатывала, но если учесть что в таблице таких десятки, то это гиганская мануальная работа. Частично помогает формула RIGHT (тк знаю, что должно быть 9 знаков в коде) и потом скопировать и вставить как значение, но опять таки ж, если этих пробелов больше чем 1, то все равно приходится переписывать вручную.

Пример с куском таблицы прикреплен. В нем в столбце В коды, и ряд 4 и 5 имеют эти странные пробелы.

Помогите разобраться, что это за такой загадочный нестираемый пробел, и как его массово распознать в таблице, где в целом больше 2 тысяч кодов и удалить. (Специалистов пытала, откуда они его копируют, но ничего вразумительного в ответ не услышала)
 
Код
=СЖПРОБЕЛЫ
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Символы не в конце , а в начале
тупо заменить символ с кодом 9 (TAB), если данных много и формулы не катят
Код
Sub Macro1()
    Selection.Replace What:=Chr(9), Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Изменено: БМВ - 12.02.2018 15:48:49
По вопросам из тем форума, личку не читаю.
 
1. отметьте этот пробел в тексте, скопируйте его
2. отметьте диапазон, в котором заменить пробелы
3. Ctrl+H
4. а поле найти: Ctrl+V
5. в поде заменить на: пусто
6. Заменить все
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, в том то и дело, что вся непечатная экзотика не видна и не выделяется, и не копируется.
По вопросам из тем форума, личку не читаю.
 
Игорь, так не работает, и уже ведь пробовали:
Цитата
JevP написал:
То есть эксель не видит это "нечто" как знак пробела ( "Find and Replace" даже если копирую пробел с ячейки копируется цифра, "Text to column" не помогают его стереть)
Изменено: Hugo - 12.02.2018 16:48:21
 
Самое интересное,что скопированный пробел, вставляется в другую ячейку как цифра 5.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Ну или так
Код
Function УБРАТЬПРОБЕЛЫ(a As Range)
Dim t$, s%
For s = 1 To Len(a.Text)
    If IsNumeric(Mid(a.Text, s, 1)) Then t = t & Mid(a.Text, s, 1)
Next s
УБРАТЬПРОБЕЛЫ = LTrim$(t)
End Function
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
кросс http://www.cyberforum.ru/ms-excel/thread2188436.html
 
Из запасников:

'
Код
 Убирает пробельные символы (символы с кодами 9, 10, 11, 13, 32) слева в строке
Function Ltrim2(ByVal s)
    Dim i As Long, n As Long, j As Long

    Ltrim2 = LTrim(s)
    n = Len(Ltrim2)
    i = 1
    Do While i <= n
        j = Asc(Mid(Ltrim2, i, 1))
        If j <> 9 And j <> 10 And j <> 11 And j <> 13 And j <> 32 Then
            Exit Do
        End If
        i = i + 1
    Loop

    If i = n + 1 Then
        Ltrim2 = ""
    ElseIf i > 1 Then
        Ltrim2 = Mid(Ltrim2, i)
    End If
End Function
Изменено: sokol92 - 12.02.2018 16:19:40
Владимир
 
По-моему, здесь ПЕЧСИМВ в самый раз:
=--ПЕЧСИМВ(B2)
и протянуть.
Можно еще добавить всякие ПОДСТАВИТЬ и СЖПРОБЕЛЫ на всякий случай:
=--ПЕЧСИМВ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(B2;СИМВОЛ(160);"")))
Изменено: Дмитрий Щербаков - 12.02.2018 16:18:09
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Самое забавное, что ТС молчит :-) ? Наверное что-то не то удалила.
По вопросам из тем форума, личку не читаю.
 
Код
Sub ClearTAB()
  Columns(2).Replace Chr(9), "", xlPart
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Всем огромное спасибо! Да таблица большая формулы нежелательны, ( не стала проверять сработали ли бы они тк пришлось бы искать аналог на английском - у меня английский эксель.)

Вот это прекрасно сработало! Просто бесконечно благодарна :)
Код
Sub ClearTAB()
  Columns(2).Replace Chr(9), "", xlPart
End Sub
 
А то  не сработало. Абыдна , да,  :)  
Изменено: БМВ - 12.02.2018 17:04:08
По вопросам из тем форума, личку не читаю.
 
И это сработало... И уверена, что остальные коды работают, поэтому и написала спасибо ВСЕМ огромное  :) Просто процитировала последний код, извиняюсь если обидела.
И формулы и text to column работает, если знать что это табуляция. Моей ошибкой было, что я этого как раз таки не поняла.  :)
Страницы: 1
Наверх