Note: The other languages of the website are Google-translated. Back to English

Как перебирать строки до пустого в столбце Excel?

Вот длинный столбец с данными, который включает несколько пустых ячеек, и вы хотите перебирать строки, пока не встретите пустую ячейку. В Excel нет встроенной функции, которая могла бы справиться с этой задачей, но я могу представить вам несколько макросов, чтобы оказать вам услугу.

Прокрутите строки до пустого с помощью VBA


стрелка синий правый пузырь Прокрутите строки до пустого с помощью VBA

1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте приведенный ниже код в пустой скрипт.

VBA: цикл до пустого

Sub Test1()
'UpdatebyExtendoffice20161222
      Dim x As Integer
      Application.ScreenUpdating = False
      ' Set numrows = number of rows of data.
      NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
      ' Select cell a1.
      Range("A1").Select
      ' Establish "For" loop to loop "numrows" number of times.
      For x = 1 To NumRows
         ' Insert your code here.
         ' Selects cell down 1 row from active cell.
         ActiveCell.Offset(1, 0).Select
      Next
      Application.ScreenUpdating = True
End Sub

цикл документов до пустого 1

В коде A1 - это первая ячейка, из которой вы хотите выполнить цикл, вы можете изменить ее по своему усмотрению.

3. Нажмите F5 чтобы начать цикл по столбцу, курсор остановится на первой встреченной пустой ячейке.
цикл документов до пустого 2

Внимание: Если вы хотите перебирать данные до тех пор, пока не встретите сплошные пустые ячейки, вы можете использовать этот код макроса.

Sub LoopThroughUntilBlanks()
'UpdatebyExtendoffice20161222
      ' Select cell A2, *first line of data*.
      Dim xrg As Range
      On Error Resume Next
      Set xrg = Application.InputBox _
        (Prompt:="first cell select..", Title:="Kutools for Excel", Type:=8)
      xrg.Cells(1, 1).Select
      ' Set Do loop to stop when two consecutive empty cells are reached.
      Application.ScreenUpdating = False
      Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0))
         ' Insert your code here.
         '
         ' Step down 2 rows from present location.
         ActiveCell.Offset(2, 0).Select
      Loop
      Application.ScreenUpdating = False
End Sub

Затем вам нужно выбрать первую ячейку, из которой вы хотите выполнить цикл в Kutools for Excel диалоговое окно, нажмите OK, затем курсор останавливается в первых непрерывных пустых ячейках.

цикл документов до пустого 3 цикл документов до пустого 4

Легко объединяйте несколько листов / книгу в один лист или рабочую книгу

Объединение нескольких листов или книг в один лист или книгу может быть удобно в Excel, но с Сочетать Функция в Kutools for Excel, вы можете объединить десятки листов / книг в один лист или книгу, а также вы можете объединить листы в один только несколькими щелчками мыши.  Нажмите для полнофункционального 30 дней бесплатного пробного периода!
объединить листы
 
Kutools for Excel: с более чем удобными надстройками Excel 300, которые можно попробовать бесплатно без ограничений в 30 дней.

Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (7)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Это зацикливание столбца, а не строки
Этот комментарий был сведен к минимуму модератором на сайте
Чтобы перебрать столбец, вы должны пройти по номеру строки.
Этот комментарий был сведен к минимуму модератором на сайте
Не могли бы вы объяснить, что является условием прекращения цикла? Что заставляет вас выйти из цикла в Test1()?
Этот комментарий был сведен к минимуму модератором на сайте
Он остановится при встрече с первым пробелом в столбце
Этот комментарий был сведен к минимуму модератором на сайте
Допустим, у меня есть тонна строк... есть какие-нибудь хитрости, чтобы заставить это работать быстрее?
Этот комментарий был сведен к минимуму модератором на сайте
Цикл работает для меня, за исключением того, что он перебирает каждую строку независимо от того, пуста она или нет.
Этот комментарий был сведен к минимуму модератором на сайте
Первый VBA выдает неправильный результат в случаях, когда имеется одна или ноль строк данных.

Вам, наверное, понадобится что-то вроде

Если Диапазон("A1").Value = "" Тогда
Количество строк = 0
ElseIf Range("A1").Offset(1, 0).Value = "" Тогда
Количество строк = 1
Еще
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
End If
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL