Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 16.08.2019, 15:13   #1
drongo777
Новичок
Джуниор
 
Регистрация: 14.08.2019
Сообщений: 14
Репутация: 10
По умолчанию Макрос удаления пустых строк после текста.

Добрый день. Нужно убрать пустые строки (с пробелами и переносами) в ячейках после текста. Как это осуществить с помощью макроса?
drongo777 вне форума   Ответить с цитированием
Старый 16.08.2019, 15:20   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,680
Репутация: 5617
По умолчанию

если выложить файл с примером таких строк - то помощь может прийти быстрее.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 16.08.2019, 15:48   #3
drongo777
Новичок
Джуниор
 
Регистрация: 14.08.2019
Сообщений: 14
Репутация: 10
По умолчанию

Прикладываю файл примера. Количество пустых после текста разное.
Вложения
Тип файла: xlsx Книга1.xlsx (9.3 Кб, 6 просмотров)
drongo777 вне форума   Ответить с цитированием
Старый 16.08.2019, 19:27   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,680
Репутация: 5617
По умолчанию

вручную можно.

отсюда - http://office-guru.ru/excel/kak-udal...-2007-437.html

Цитата:
Удаляем возвраты каретки вручную
Плюсы: Этот способ самый быстрый.

Минусы: Никаких дополнительных плюшек

Вот так можно удалить переносы строк при помощи инструмента «Найти и заменить»:

Выделите все ячейки, в которых требуется удалить возвраты каретки или заменить их другим символом.
Нажмите Ctrl+H, чтобы вызвать диалоговое окно Найти и заменить (Find and Replace).


Поставьте курсор в поле Найти (Find what) и нажмите Ctrl+J. На первый взгляд поле покажется пустым, но если посмотрите внимательно, то увидите в нём маленькую точку.
В поле Заменить на (Replace With) введите любое значение для вставки вместо возвратов каретки. Обычно для этого используют пробел, чтобы избежать случайного склеивания двух соседних слов. Если нужно просто удалить переносы строк, оставьте поле Заменить на (Replace With) пустым.
Нажмите кнопку Заменить все (Replace All) и наслаждайтесь результатом!
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 16.08.2019, 19:48   #5
drongo777
Новичок
Джуниор
 
Регистрация: 14.08.2019
Сообщений: 14
Репутация: 10
По умолчанию

Этот метод, к сожалению, не подходит, т.к. у текста тоже уберутся переносы. Мне же нужно, чтобы после текста убрались пустые строчки с переносами.
drongo777 вне форума   Ответить с цитированием
Старый 16.08.2019, 19:51   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,680
Репутация: 5617
По умолчанию

Цитата:
Сообщение от drongo777 Посмотреть сообщение
Этот метод, к сожалению, не подходит, т.к. у текста тоже уберутся переносы.
ок.

а если такой макрос:
Код:
Sub TrimAll()
Dim C As Range
For Each C In ActiveSheet.UsedRange
  If Len(C) > 0 Then
     C.Value = Trim(C.Value)
  End If
Next
End Sub

Последний раз редактировалось Serge_Bliznykov; 16.08.2019 в 19:53.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 16.08.2019, 20:09   #7
drongo777
Новичок
Джуниор
 
Регистрация: 14.08.2019
Сообщений: 14
Репутация: 10
По умолчанию

Поставил, ничего не происходит
Вложения
Тип файла: xlsx Книга1.xlsx (9.2 Кб, 5 просмотров)
drongo777 вне форума   Ответить с цитированием
Старый 16.08.2019, 20:35   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,680
Репутация: 5617
По умолчанию

ладно. ещё одна попытка.
пробуйте
Код:
Option Explicit

Sub TrimAll()
Dim C As Range, s$, i%, symb%
For Each C In ActiveSheet.UsedRange
  If Len(C.Value) > 0 Then
     s = Trim(C.Value)
     i = Len(s)
     While (i > 1) And (Asc(Mid(s, i, 1)) < 33)
        i = i - 1
     Wend
     C.Value = Left(s, i)
  End If
Next
End Sub
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 16.08.2019, 21:04   #9
drongo777
Новичок
Джуниор
 
Регистрация: 14.08.2019
Сообщений: 14
Репутация: 10
По умолчанию

Супер! Спасибо большое!
drongo777 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подфиксить макрос по удалению пустых строк в таблице. Vatorin Microsoft Office Word 0 21.10.2014 16:50
Макрос удаления 300 строк после .... lakcin Microsoft Office Excel 3 31.08.2014 15:04
макрос для удаления строк??? mixa2997510 Microsoft Office Excel 3 21.05.2012 13:38
Макрос удаления пустых ячеек и листов книги sna1 Microsoft Office Excel 2 04.05.2011 20:49
Макрос для удаления повторяющихся строк Jelena_bsb Microsoft Office Excel 3 05.08.2010 13:34


03:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru