Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление пустых строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Удаление пустых строк
Мур Дата: Понедельник, 08.08.2011, 22:47 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Доброго времени суток, форумчане!
Появилась необходимость автоматически удалиять пустые строки в таблице.
Точно помню, что где-то на форуме видел подобное, но поиск не помогает.
Может кто поможет найти?
И прикладывать пример вреде нет необходимости.
Большое спасибо!
 
Ответить
СообщениеДоброго времени суток, форумчане!
Появилась необходимость автоматически удалиять пустые строки в таблице.
Точно помню, что где-то на форуме видел подобное, но поиск не помогает.
Может кто поможет найти?
И прикладывать пример вреде нет необходимости.
Большое спасибо!

Автор - Мур
Дата добавления - 08.08.2011 в 22:47
Serge_007 Дата: Понедельник, 08.08.2011, 23:12 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте.
Цитата Мур
где-то на форуме видел подобное, но поиск не помогает.

См. здесь: Макрос "DeleteEmptyRows" (Удаление всех пустых строк в таблице)

И ещё пара вариантов:
[vba]
Код
Sub DeleteEmptyStrings()
       Dim intLastRow As Integer  ' Номер последней используемой строки
       Dim intRow As Integer      ' Номер проверяемой строки

       ' Получение номера последней используемой строки
       intLastRow = Worksheets(ActiveSheet.Index).UsedRange.Row + _
        Worksheets(ActiveSheet.Index).UsedRange.Rows.Count - 1
       ' Счетчик устанавливается на используемую первую строку
       intRow = Worksheets(ActiveSheet.Index).UsedRange.Row
       ' Удаление пустых строк
       Do While intRow <= intLastRow
          If ActiveSheet.Rows(intRow).Text = "" Then
             ' Удаление строки
             ActiveSheet.Rows(intRow).Delete
             ' Данные сдвинулись вверх, поэтому номер последней _
              строки уменьшился, а текущей - не изменился
             intLastRow = intLastRow - 1
          Else
             ' Текущая строка заполнена - переходим к следующей
             intRow = intRow + 1
          End If
       Loop
End Sub
[/vba]

[vba]
Код
Sub DeleteEmptyStrings()
       Dim intRow As Integer
       Dim intLastRow As Integer

       ' Получение номера последней используемой строки
       intLastRow = ActiveSheet.UsedRange.Row + _
        ActiveSheet.UsedRange.Rows.Count - 1

       ' Удаление пустых строк
       For intRow = intLastRow To 1 Step -1
          If ActiveSheet.Rows(intRow).Text = "" Then
             ActiveSheet.Rows(intRow).Delete
          End If
       Next intRow
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390


Сообщение отредактировал Serge_007 - Понедельник, 31.08.2015, 11:21
 
Ответить
СообщениеЗдравствуйте.
Цитата Мур
где-то на форуме видел подобное, но поиск не помогает.

См. здесь: Макрос "DeleteEmptyRows" (Удаление всех пустых строк в таблице)

И ещё пара вариантов:
[vba]
Код
Sub DeleteEmptyStrings()
       Dim intLastRow As Integer  ' Номер последней используемой строки
       Dim intRow As Integer      ' Номер проверяемой строки

       ' Получение номера последней используемой строки
       intLastRow = Worksheets(ActiveSheet.Index).UsedRange.Row + _
        Worksheets(ActiveSheet.Index).UsedRange.Rows.Count - 1
       ' Счетчик устанавливается на используемую первую строку
       intRow = Worksheets(ActiveSheet.Index).UsedRange.Row
       ' Удаление пустых строк
       Do While intRow <= intLastRow
          If ActiveSheet.Rows(intRow).Text = "" Then
             ' Удаление строки
             ActiveSheet.Rows(intRow).Delete
             ' Данные сдвинулись вверх, поэтому номер последней _
              строки уменьшился, а текущей - не изменился
             intLastRow = intLastRow - 1
          Else
             ' Текущая строка заполнена - переходим к следующей
             intRow = intRow + 1
          End If
       Loop
End Sub
[/vba]

[vba]
Код
Sub DeleteEmptyStrings()
       Dim intRow As Integer
       Dim intLastRow As Integer

       ' Получение номера последней используемой строки
       intLastRow = ActiveSheet.UsedRange.Row + _
        ActiveSheet.UsedRange.Rows.Count - 1

       ' Удаление пустых строк
       For intRow = intLastRow To 1 Step -1
          If ActiveSheet.Rows(intRow).Text = "" Then
             ActiveSheet.Rows(intRow).Delete
          End If
       Next intRow
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 08.08.2011 в 23:12
KuklP Дата: Вторник, 09.08.2011, 05:21 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Так пошустрей будет:
[vba]
Код
Sub www()
       Dim i&
       With ActiveSheet.UsedRange
           For i = 1 To .Columns.Count
               .AutoFilter Field:=i, Criteria1:="="
           Next
           .Offset(1).SpecialCells(12).EntireRow.Delete
       End With: ActiveSheet.AutoFilterMode = 0
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал Serge_007 - Понедельник, 31.08.2015, 11:21
 
Ответить
СообщениеТак пошустрей будет:
[vba]
Код
Sub www()
       Dim i&
       With ActiveSheet.UsedRange
           For i = 1 To .Columns.Count
               .AutoFilter Field:=i, Criteria1:="="
           Next
           .Offset(1).SpecialCells(12).EntireRow.Delete
       End With: ActiveSheet.AutoFilterMode = 0
End Sub
[/vba]

Автор - KuklP
Дата добавления - 09.08.2011 в 05:21
Мур Дата: Вторник, 09.08.2011, 13:25 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Ребята, всем спасибо.
Взял первый попавшийся с конца код, автор (KuklP),
работает вроде нормально.
Остальные варианты потом посмотрю, время поджимает.
Еще раз спасибо!
 
Ответить
СообщениеРебята, всем спасибо.
Взял первый попавшийся с конца код, автор (KuklP),
работает вроде нормально.
Остальные варианты потом посмотрю, время поджимает.
Еще раз спасибо!

Автор - Мур
Дата добавления - 09.08.2011 в 13:25
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!