The below code works fine to find the first empty cell in a given column (here column B). But what I need is a code to find the first blank cell in that column.
Sub macro1()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
sourceCol = 2 'column B has a value of 2
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row
'for every row, find the first blank cell and select it
For currentRow = 1 To rowCount
currentRowValue = Cells(currentRow, sourceCol).Value
If IsEmpty(currentRowValue) Or currentRowValue = "" Then
Cells(currentRow, sourceCol).Select
End If
Next
End Sub
Also, it should start looking from row 10 instead of row 1.
Can somebody rewrite this code to do this?
asked Aug 6, 2014 at 8:37
3
Could something like this be what you’re looking for:
Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
For Each cell In ws.Columns(2).Cells
If IsEmpty(cell) = True Then cell.Select: Exit For
Next cell
End Sub
This will run through each cell in column B in the active worksheet and select the first empty one it comes across. To set the sheet to a particular one Change Set ws = ActiveSheet
to Set ws = Sheets("EnterSheetNameHere")
Or you could try using:
Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
For Each cell In ws.Columns(2).Cells
If Len(cell) = 0 Then cell.Select: Exit For
Next cell
End Sub
answered Aug 6, 2014 at 13:43
TomTom
9,6873 gold badges31 silver badges48 bronze badges
My problem is solved by using the following code.
Sheets("sheet1").Select
Dim LR2 As Long, cell2 As Range, rng2 As Range
With Sheets("sheet1")
LR2 = .Range("B" & Rows.Count).End(xlUp).Row
For Each cell2 In .Range("B8:B" & LR2)
If cell2.Value <> "" Then
If rng2 Is Nothing Then
Set rng2 = cell2
Else
Set rng2 = Union(rng2, cell2)
End If
End If
Next cell2
rng2.Select
End With
answered Aug 7, 2014 at 10:59
StanStan
9274 gold badges15 silver badges33 bronze badges
Just my two cents.
The function will look for the first encountered BLANK cell in a range, so it should work with columns and rows.
'Find first BLANK cell in a given range, returnt a range (one cell)
Function FirstBlank(ByVal rWhere As Range) As Range
Dim vCell As Variant
Dim answer As Range
Set answer = Nothing
For Each vCell In rWhere.Cells
If Len(vCell.Formula) = 0 Then
Set answer = vCell
Exit For
End If
Next vCell
Set FirstBlank = answer
End Function
And then do whatever you want with the cell.
answered Oct 21, 2015 at 10:49
Try this code to select the first empty cell below cell B10. But it requires B10 and B11 to be pre-occupied.
Range(«B10»).End(xlDown).Offset(1, 0).Select
or
Range(«B100000»).End(xlUp).Offset(1, 0).Select
answered Aug 28, 2018 at 22:50
maverick Пользователь Сообщений: 20 |
Прошу помощи знающих. К сожалению, я пока «не очень» дружен с VBA =) Помогите, плз. |
vlanib Пользователь Сообщений: 26 |
[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В» |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
В общем случае макрос может выглядеть так: |
maverick Пользователь Сообщений: 20 |
{quote}{login=vlanib}{date=13.05.2010 10:37}{thema=}{post}[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В»{/post}{/quote} уточнение: мне необходима первая, а не крайняя свободная ячейка. Можно как-то переделать? |
maverick Пользователь Сообщений: 20 |
{quote}{login=Юрий М}{date=13.05.2010 10:41}{thema=}{post}В общем случае макрос может выглядеть так: Спасибо огромное! |
Serge Пользователь Сообщений: 11308 |
А как переделать код: Sub Макрос1() , что бы искалась первая пустая ячейка в том столбце, в котором находится активная ячейка? |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Sub Макрос1() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Serge Пользователь Сообщений: 11308 |
Спасибо! |
maverick Пользователь Сообщений: 20 |
тут же возник попутный вопрос: |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Sub Макрос1() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Serge Пользователь Сообщений: 11308 |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
{quote}{login=maverick}{date=13.05.2010 11:16}{thema=}{post}тут же возник попутный вопрос: Sub Макрос1() Если максимальное+1 Все применено к первому столбцу Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Спасибо! =) |
|
А как можно такое провернуть: |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Какое отношение вопрос имеет к данной теме? Создавайте тему по правилам и получите ответ. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
А как прописать, что бы просматривался только диапазон P4:P16 , т.к. после этого идут дальше заполненные ячейки. |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Range(«P16»).End(xlUp).Select Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=The_Prist}{date=13.05.2010 11:16}{thema=}{post}Sub Макрос1() Я сам — дурнее всякого примера! … |
{quote}{login=The_Prist}{date=24.12.2011 01:20}{thema=}{post}Range(«P16»).End(xlUp).Select{/post}{/quote} Dim iLastRow As Long Переносит на ячейку Р2, а необходимо с верху вниз с Р4 до Р16 в зависимости от заполнения ячеек. Т.к. ячейка Р19 и ниже содержит данные. |
|
Hugo Пользователь Сообщений: 23254 |
Вот это Можно так: Это от P16 идём вверх. Sub tt() |
Hugo Пользователь Сообщений: 23254 |
Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() |
{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. |
|
{quote}{login=}{date=25.12.2011 02:06}{thema=Re: }{post}{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. Попробую так: Sub tt() |
|
{quote}{login=}{date=25.12.2011 02:12}{thema=Re: Re: }{post}{quote}{login=}{date=25.12.2011 02:06}{thema=Re: }{post}{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено: Sub tt() Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную. Попробую так: Sub tt() Опа. Заработало. Спасибо всем!!! |
|
Убрал лишнее и оставил только это: |
|
Hugo Пользователь Сообщений: 23254 |
On Error Resume Next всёж оставьте |
Станислав Пользователь Сообщений: 120 |
{quote}{login=Hugo}{date=25.12.2011 02:29}{thema=}{post}On Error Resume Next всёж оставьте :){/post}{/quote} Спасибо. |
А не подскажите ли вы, мне нужно нечто похожее, как выбирать каждую ячейку первого столбца, пока не наткнешься на пустую, естественно после выбора будет какое-либо действие, и это вроде как должно выполняться через цикл, если я правильно понимаю… помогите пожалуйста |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
floove, Вы демонстрируете недюжинную сообразительность. Тема называется «Поиск первой свободной ячейки в стообце». Все ответы посвящены этому. И тут появляетесь Вы и задаете вопрос: «А как найти первую свободную ячейку в столбце?». Браво! Я сам — дурнее всякого примера! … |
Hugo Пользователь Сообщений: 23254 |
#30 28.12.2011 01:39:16 Сергей, мне кажется, что ты ошибаешься — тут нужен цикл по занятым до первой свободной. |
Список данных может быть заполнен пустыми ячейками. Чтобы найти первую пустую ячейку в выбранном диапазоне столбца, просмотрите приведенное ниже руководство для получения дополнительных сведений.
Найдите первую пустую ячейку в столбце с формулой
Найдите первую пустую ячейку в столбце с кодом VBA
Найдите первую пустую ячейку в столбце с формулой
В этом разделе мы покажем вам, как найти первую пустую ячейку в столбце с формулой. В качестве примера возьмите приведенный ниже список данных, пожалуйста, сделайте следующее.
1. Выберите пустую ячейку для отображения результата.
2. Скопируйте и вставьте формулу. = МИН (ЕСЛИ (A1: A23 = «»; СТРОКА (A1: A23))) в панель формул, затем нажмите Ctrl + Shift + Enter клавиши на клавиатуре. Смотрите скриншот:
Внимание: Измените диапазон в формуле на свой собственный.
После этого в выбранной ячейке отобразится номер строки. Поскольку указанный вами диапазон находится в столбце A, в зависимости от отображаемого числа это означает, что первая пустая ячейка — это A16.
Найдите первую пустую ячейку в столбце с кодом VBA
Помимо формулы, вы также можете найти первую пустую ячейку в столбце с кодом VBA. Пожалуйста, сделайте следующее.
1. Нажмите другой + A11 в то же время открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, дважды щелкните текущее имя рабочего листа на левой панели, чтобы открыть редактор кода.
3. Скопируйте и вставьте следующий код VBA в редактор.
Код VBA: найти первую пустую ячейку в столбце
Sub Findfirstblankcell()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
For Each Rng In WorkRng
If Rng.Value = "" Then
MsgBox "No Value, in " & Rng.Address
End If
Next
End Sub
4. Нажмите Run кнопку или нажмите кнопку F5 ключ для запуска кода.
5. После запуска кода KutoolsforExcel появится диалоговое окно, выберите диапазон, в котором вы хотите найти первую пустую ячейку, затем щелкните OK кнопка. Смотрите скриншот:
Затем появляется диалоговое окно с адресом первой пустой ячейки в указанном столбце, указанном внутри.
Внимание: Если в выбранном диапазоне есть другие пустые ячейки, указанное выше диалоговое окно будет появляться до тех пор, пока не будут найдены все пустые ячейки в диапазоне.
Статьи по теме:
- Как найти позицию первого / последнего числа в текстовой строке в Excel?
- Как найти ячейки с условным форматированием / с условным форматированием в Excel?
- Как найти ячейки с / с проверкой данных в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (2)
Оценок пока нет. Оцените первым!
Re:Я | Дата: Понедельник, 27.06.2016, 10:43 | Сообщение № 7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Поиск первой пустой ячейки в столбце
Автор SEA72, 13.01.2015, 09:26
« назад — далее »
Добрый день
есть необходимость поиска в столбце листа первой пустой ячейки
использую следующую команду
Sheets("Лист1").Select
[C1:C65536].SpecialCells(xlCellTypeBlanks).Cells(1, 1).Select
но данная команда работает только до колонки «С»
при замене на колонку «D» выходит ошибка run-time error ‘1004’
подскажите что не правильно
За ранее
Dim lRws As Long
lRws = .Cells(.Rows.Count, 4).End(xlUp).Row + 1
Последняя заполненная ячейка в столбце 4. Следующая (+1) — пустая.
Добрый день
подставил ваш код, выдаёт ошибку
invalid or unqualified reference
Может, точки убрать
Dim lRws As Long
lRws = Cells(Rows.Count, 4).End(xlUp).Row + 1
Если не то, в файле покажите.
Ошибка ушла , а как сделать чтобы пустая ячейка становилась активной?
не нужно цитировать ВСЕ! Да и вообще в данном случае не нужно [МОДЕРАТОР]
или так
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Select
что будет дальше с активированной ячейкой? может вам активировать ячейку и не нужно вовсе.
Есть ещё один вариант (взято из книги и чуть переделано под ваши нужды)
Sub выд_пуст_яч()
LastRow = Cells(Rows.Count, 1).Row
For i = 1 To LastRow
If IsEmpty(Cells(i, 1)) Then
Cells(i, 1).Select
Exit For
End If
Next i
End Sub
Оформляйте код (кнопка «#» на панели) [МОДЕРАТОР]
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
Поиск первой пустой ячейки в столбце