Страницы: 1
RSS
Замена множественных пробелов на перевод строки.
 
Пример:  
 
Сидоров______________Петров_____Иванов______________________­_(подчеркивание - пробелы)заменить на  
Сидоров*  
*  
Петров*  
*  
Иванов  
 
без пробелов и с двумя переводами строки.  
 
 
Есть ли вариант без использования макросов через заменить, как в ворде?
 
"Заменить" есть и в Excel.
 
На малой цифровой клавиатуре alt+013.
Я сам - дурнее всякого примера! ...
 
Или нет, не совсем так.  
 
Заменить больше трех пробелов подряд на двойной перевод строки, а потом заменить оставшиеся пробелы на одинарные.  
 
Т.е. Иванов---Иван--------Петров--Петр-----------------Сидоров-Сидор на  
 
Иванов-Иван*  
*  
Петров-Петр*  
*  
Сидоров-Сидор (тире - пробелы, * - перевод строки)
 
А еще убрать начальные пробелы, забыла совсем.  
 
--Иванов---Иван--------Петров--Петр-----------------Сидоров-Сидор
 
Alt+013 - не работает.
 
Если есть варианты с макросами, подсказывайте тоже. Просто я в них ни бум-бум, поэтому хотела как попроще.
 
Вот нашла такой макрос здесь:  
 
Sub test()  
With Selection  
.Value = Application.Trim(.Value)  
End With  
End Sub  
 
Удаляет лишние пробелы. Как бы его подкорректировать под мою задачу?
 
ctrl+J работает.
Я сам - дурнее всякого примера! ...
 
И alt+010.
Я сам - дурнее всякого примера! ...
 
Да, ctrl j я уже попробовала. Подскажите теперь тогда, как ввести Найти "больше 3 пробелов".
 
Юльча, а смекалку включить не пробовали? Найденным макросом меняете множественные пробелы на одиночные. Потом меняете пробелы на знаки переноса. Детский сад...
Я сам - дурнее всякого примера! ...
 
Sub qqq()  
With Selection  
.Value = Replace(Application.Trim(Replace(.Value, "    ", vbLf)), vbLf & " ", vbLf)  
End With  
End Sub  
 
.Value, "четыре пробела", vbLf  
Это на случай, если форум украдет
 
{quote}{login=KukLP}{date=04.08.2012 01:18}{thema=}{post}Юльча, а смекалку включить не пробовали? Найденным макросом меняете множественные пробелы на одиночные. Потом меняете пробелы на знаки переноса. Детский сад...{/post}{/quote}  
 
Вы плохо посмотрели, что мне надо. Мне не все пробелы надо заменить на переводы, а только, где больше 3 подряд идет. Потом после этого естественно можно использовать макрос для окончательной очистки.
 
И кто ж не дает менять четыре пробела на знак переноса? Дело Ваше. У меня когда зачешется пятка, я не бегу во всемирную организацию здравоохранения.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=04.08.2012 01:39}{thema=}{post}И кто ж не дает менять четыре пробела на знак переноса? Дело Ваше. У меня когда зачешется пятка, я не бегу во всемирную организацию здравоохранения.{/post}{/quote}  
 
Грубиян. Я ничего не понимаю в макросах!!! Написала же. Все что мне надо теперь - это аналог ^0032{3;} ворда, чтобы ввести в поле найти экселя. Предложенный макрос выше что-то не то делает, сама я его не могу доделать, так как не хватает знаний. Нужен окончательный рабочий вариант.
 
Юльча, Вам никто не грубил, а вот Вы оскорбляете - нехорошо. Очень сомневаюсь, что Вы после этого получите здесь помощь.
 
kim, я никого здесь не оскорбляла. Детский сад, здравоохранение,включить смекалку - это грубовато на самом деле. Новичок в экселе обращается за советом, а Вы меня упрекаете в каждом сообщении в несообразительности. Заметьте, что я сразу не стала заострять на этом внимание. Не знаю, помогут или нет, только после таких ответов как Ваши, уже желание как-то все меньше и меньше получить помощь.
 
Предложенный Вам макрос работает с выделением. Вы что-то выделяли?  
>> что-то не то делает  
Что не то? Объяснить можете? Но мне уже пора ехать.
Я сам - дурнее всякого примера! ...
 
Во монстр получился!  
Sub qqq()  
With Selection  
.Value = Replace(Replace(Replace(Application.Trim(Replace(Replace(Application.Trim(Replace(.Value, Chr(32) & Chr(32) & Chr(32) & Chr(32), "|")), " ", "@"), "|", " ")), " ", vbLf), "@", " "), vbLf & " ", vbLf)  
End With  
End Sub
 
Спасибо за предложенные макросы. Последний вставляет одинарный переход, подскажите, как двойной, в каком месте макрос подправить.  
 
KukLP - извиняюсь, я на вас ни за что наехала, kim меня запутал, мне показалось, что это ваше сообщение о сомнении в получении помощи, сорри еще раз за невнимательность. Макрос потом еще посмотрю предыдущий еще раз. Поторопилась с выводами возможно.
 
{quote}{login=Юльча}{date=04.08.2012 03:36}{thema=}{post}Последний вставляет одинарный переход, подскажите, как двойной, в каком месте макрос подправить.  
{/post}{/quote}  
И что бы это значило?  
Я конечно могу предположить, что это означает - макрос работает с одной ячейкой, как сделать, чтобы обрабатывал несколько. :-)  
 
Sub qqq()  
For Each cel In Selection  
cel.Value = Replace(Replace(Replace(Application.Trim(Replace(Replace(Application.Trim(Replace(cel.Value, Chr(32) & Chr(32) & Chr(32) & Chr(32), "|")), " ", "@"), "|", " ")), " ", vbLf), "@", " "), vbLf & " ", vbLf)  
Next  
End Sub  
 
Если не угадал....
 
Андрей, наверное имелся ввиду двойной перевод строки. Не уверен:-)
Я сам - дурнее всякого примера! ...
 
Да-да, двойной перевод строки имелся в виду.
 
{quote}{login=kim}{date=04.08.2012 02:05}{thema=}{post}Юльча, Вам никто не грубил, а вот Вы оскорбляете - нехорошо. Очень сомневаюсь, что Вы после этого получите здесь помощь.{/post}{/quote}  
Добрый день.  
Я периодически захожу на бухгалтерский форум..., так там в правилах есть такой вот пункт:  
"На вопросы, чьи авторы игнорируют элементарные правила приличия (например, не здороваются, не говорят "спасибо" и "пожалуйста", а также пишут в хамском, потребительском или командном тоне, выбирают в качестве псевдонима набор букв или цифр) штатные эксперты отвечать не будут. Если же участник форума будет систематически проявлять неуважение (переход на личности, злобная ирония) к участникам форума, ему будет закрыт доступ на форум. Специальные предупреждения в личной переписке автору недоброжелательных сообщений высылаться не будут. Поэтому следует обращать внимание на замечания штатных экспертов и модераторов, высказываемые в обсуждаемой теме"    
И следят за этим делом там строго!  
М.б. здесь тоже прописать что-нибудь аналогичное?
 
Ольга, здравствуйте. На самом деле Юльча права, с точки зрения гостя форума мои высказывания выглядят грубовато. Просто с утра какие-то вопросы, по большей мере несуразные. Человек вместо того, чтоб нажать F1 пишет целый рассказ в форум, вместо поиска - тему в форум. А темы такие обсуждались по 3 раза в неделю. Но гостю невдомек, что осточертело форумчанам по триста раз отвечать на один и тот же вопрос. Хотя в правилах есть пункт 5. Но хотят получать решения не напрягаясь. Скоро вообще думать станет незачем:-)
Я сам - дурнее всякого примера! ...
 
Ох, да я сама задавала такие вопросы (и не один раз!) :(:(;(  
Но, ведь, можно же поздороваться и употребить слово "Пожалуйста", тогда гораздо приятнее общаться с этим человеком.
 
Обработает текущий лист  
 
Sub bb()  
Dim c As Range, s$  
With CreateObject("vbscript.regexp")  
   .Global = True  
   .Pattern = " {4,}" '4 и более пробелов подряд  
   For Each c In Cells.SpecialCells(xlCellTypeConstants, xlTextValues)  
       s = .Replace(c.Value, vbLf & vbLf)  
       c = Application.Trim(s)  
   Next  
End With  
End Sub
Страницы: 1
Читают тему
Loading...