Поиск свободной ячейки в excel

Finding the first blank cell in your workbook can become a fairly repetitive task, especially in situations like adding new rows into a large data set. In this article, we are going to show you how to find the first blank cell in a range in Excel, and also show you how to create a hyperlink to cells directly.

Download Workbook

Formula

Finding the position:      {=MATCH(TRUE,ISBLANK(RANGE),0)}

The address:                      { =CELL(«address»,INDEX(RANGE,MATCH(TRUE,ISBLANK(RANGE),0)))

Hyperlink:           {=HYPERLINK(“#”&CELL(«address»,INDEX(RANGE,MATCH(TRUE,ISBLANK(RANGE),0))))}

*             range is the reference from the work range

**           {} characters are put by Excel automatically. Do not type them.

How it works

Excel doesn’t have a built-in formula to find the first blank cell in a range. However, there is the ISBLANK function, which tests a cell, and returns a Boolean value according to its content. The function returns TRUE if cell is blank, FALSE otherwise. Thus, finding the first FALSE value means to find the first blank cell.

MATCH function can help locate a TRUE value. Once the position is found, you can use it with the INDEX function to return its reference. CELL and HYPERLINK functions can use the reference information to display the address and create a hyperlink.

The problem is that the ISBLANK function can only work with a single cell. You need to use a helper column to populate TRUE and FALSE values which doesn’t sound too practical. Instead, you can forego using a helper column by using an array function.

Use the reference of your range of values in the ISBLANK function. This action will return an array of Boolean values. The first FALSE value indicates the position of the first blank cell in the range. Wrap the function with MATCH to get the position.

Use Ctrl + Shift + Enter key combination instead of just pressing the Enter key to enter the formula as an array formula.

=MATCH(TRUE,ISBLANK(B5:B12),0)

How to find the first blank cell in a range in Excel 01

Return address of the first blank cell

The INDEX function has a lesser known feature which is returning the cell reference, instead of its value. Once the reference is found, you can use it with other functions that need a reference. The CELL function is one of them.

The CELL function can return the address of a reference. If you need the address as a string, use the following formula.

=CELL(«address»,INDEX(B5:B12,MATCH(TRUE,ISBLANK(B5:B12),0)))

As you have guess already, this formula needs Ctrl + Shift + Enter as well.

Hyperlink to the first blank cell

The HYPERLINK function has a unique ability like converting a text into a hyperlink. You can create hyperlinks anywhere on an Excel workbook. Just remember to add a “#” character in front. “#” character tells Excel that the following path is an Excel reference.

=HYPERLINK(«#»&CELL(«address»,INDEX(B5:B12,MATCH(TRUE,ISBLANK(B5:B12),0))))

Если пользователь использует таблицу Excel с небольшим количеством данных, то проблем с не возникает с поиском пустых ячеек. Но когда информации очень много, хорошо было бы автоматизировать этот процесс. Ведь вручную просматривать тысячи ячеек занимает очень много времени, которое можно было бы использовать для других рабочих задач или отдыха. Особенно это важно при работе с документами, где большая часть данных – числовые. Там и без того важно не запутаться.

Также автоматизация поиска пустых ячеек важна в ситуациях, когда на основе полученных данных другая формула выполняет определенные вычисления. Тогда это позволяет сэкономить время сразу на нескольких этапах.

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

Содержание

  1. Как определить, пустая ячейка или нет (способы)
  2. Процедуры VBA
  3. Код для конкретной ячейки
  4. Код для активной ячейки
  5. Функция ЕПУСТО для проверки пустых ячеек
  6. Примеры использования функции ЕПУСТО
  7. Почему следует использовать функцию ЕПУСТО при проверке пустых ячеек?
  8. Пример проверки на пустую ячейку
  9. Как подсчитать количество пустых ячеек в Эксель
  10. Особенности применения функции ЕПУСТО в Excel
  11. Выводы

Как определить, пустая ячейка или нет (способы)

Это можно сделать с помощью функции ЕПУСТО, которая может использоваться для данных самых разных типов, включая не только числа и текст, но даже логические функции. Давайте более подробно рассмотрим особенности работы с этой формулой.

Эта функция имеет очень простую схему использования. Если в конкретной ячейке нет никакой информации, то возвращается ИСТИНА. Если же в ней содержится определенная информация, то, соответственно, значение оказывается ЛОЖЬ.

Есть и другие способы определения, есть ли информация во всех ячейках определенного диапазона или в конкретной ячейке. Также в некоторых ситуациях разумно применять обычную функцию ЕСЛИ, знакомую почти каждому активному пользователю. Давайте разберем также и правила их использования. 

Процедуры VBA

VBA – это язык программирования, который используется для написания макросов. Это маленькие исполняемые модули, которые выполняют определенную последовательность действий, в том числе, и осуществляют проверку, есть ли внутри ячейки какая-то информация, или нет.

Код для конкретной ячейки

Если перед нами стоит задача указать конкретную ячейку для того, чтобы осуществлялась ее проверка на предмет наличия какой-то информации, то нужно записать такой код.

Sub example()  

 If IsEmpty(Range(«A1»)) = True Then  

 MsgBox «Ячейка пустая»  

 Else  

 MsgBox «Ячейка не пустая»  

 End If  

End Sub  

Этот фрагмент кода проверяет ячейку А1 на предмет того, содержатся ли в ней какие-то данные. И результат выводит в соответствующее окошко.

Код для активной ячейки

Если перед нами стоит задача написать макрос, который проводит анализ выделенной ячейки на предмет содержания в ней какой-то информации, то нужно использовать такой фрагмент кода. 

Sub example()  

 If IsEmpty(ActiveCell) = True Then  

 MsgBox «Ячейка пустая»  

 Else  

 MsgBox «Ячейка не пустая»  

 End If  

End Sub 

Функция ЕПУСТО для проверки пустых ячеек

Как мы уже поняли, функция ЕПУСТО дает возможность определить, пустая ли определенная ячейка. Давайте разберем некоторые практические аспекты использования этой функции.

Примеры использования функции ЕПУСТО

Давайте опишем некоторые способы применения функции ЕПУСТО на практике. Допустим, вы работаете преподавателем и у вас открыта таблица с оценками учеников по последнему тесту. При этом некоторые из баллов не записаны, поскольку ряд студентов плохо сдали его и пошли на пересдачу. И допустим, перед нами стоит задача написать в третьей колонке список тех, кто сдал экзамен с первого раза.

Как определить - пустая ячейка, или в ней содержатся данные

1

Чтобы реализовать поставленные задачи, нам нужно ввести следующую формулу после выделения диапазона C3:C18.

=ЕСЛИ(ИЛИ(ЕПУСТО(B3);B3=2);»На пересдачу»;»Сдал»)

Если пользователь хоть немного понимает, как устроена работа с формулами, то он, основываясь на синтаксисе приведенной выше строки, поймет, что если в ячейке есть балл, то в ячейку будет записано «Сдал». Если же оценки нет, то появится результат «На пересдачу».

После того, как мы введем эту формулу, результат будет следующим:

Как определить - пустая ячейка, или в ней содержатся данные

2

Далее давайте попробуем сделать особое форматирование в зависимости от того, есть ли оценка у человека или нет. Для этого нужно найти параметр «Стили» на вкладке «Главная». Там находится пункт «Условное форматирование». После того, как мы его выберем, нужно нажать кнопку «Создать правило».

Как определить - пустая ячейка, или в ней содержатся данные

3

Появится окно, в котором нам нужно выбрать последнюю опцию, где идет речь об использовании формулы для определения параметров форматирования. В строке ниже нужно написать следующую формулу, которая показывается на скриншоте.

Как определить - пустая ячейка, или в ней содержатся данные

4

После этого нам нужно нажать на кнопку «Формат» и выбрать красный цвет фона. Действия подтверждаются путем нажатия кнопки «ОК». Теперь у нас все ячейки с надписью «На пересдачу» выделяются красным цветом.

Как определить - пустая ячейка, или в ней содержатся данные

5

Почему следует использовать функцию ЕПУСТО при проверке пустых ячеек?

Тот человек, который уже немного разбирается в Excel, может задать вопрос: почему нельзя использовать банальную функцию ЕСЛИ для этой цели? Да, можно. Достаточно просто записать такую формулу:

=ЕСЛИ(ИЛИ(B3=»»;B3=2);»На пересдачу»;»Сдал»)

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

Как определить - пустая ячейка, или в ней содержатся данные

6

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

Если использовать функцию ЕПУСТО для этой цели, пользователь получает возможность узнать реальную картину, какие ячейки действительно пустые, а не только отображаются, как пустые. 

Пример проверки на пустую ячейку

У нас есть таблица, в которой указана определенная информация. Перед нами стоит задача проверить заполненность полей. Наша исходная таблица выглядит следующим образом.

Как определить - пустая ячейка, или в ней содержатся данные

7

Чтобы понять, есть ли пустые ячейки, нужно использовать именно формулу массива. Ее основное отличие в том, что она работает одновременно с большим количеством данных. Чтобы сделать формулу массива, нужно нажать комбинацию Ctrl + Shift + Enter после того, как формула будет введена в соответствующую строку.

=ЕСЛИ(СУММ(—ЕПУСТО(B3:B17));ИСТИНА;ЛОЖЬ)

В примере, которое описывается нами сейчас, функция СУММ применяется с целью определения количества всех значений, которые возвращаются функцией ЕПУСТО. Если же после вычисления по этой формуле окажется значение, превышающее ноль, то вернется значение «Истина».

Как следствие, мы получим следующую таблицу.

Как определить - пустая ячейка, или в ней содержатся данные

8

Видим, что в рассматриваемом примере есть те ячейки, не содержащие никаких значений.

Внимание. Были использованы символы «–-» в формуле, приводимой выше. На это надо обратить особое внимание. Эти символы означают двойное отрицание. В нашем примере его нужно использовать, чтобы превратить логический тип данных в числовой.

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

Но практика показывает, что наиболее удобно использовать двойной минус. Это не только более удобно на этапе набора, но еще и ускоряет работу таблицы. Причем прирост производительности может достигать 15 процентов, что очень много, когда имеется большое количество функций. 

Как подсчитать количество пустых ячеек в Эксель

Теперь давайте разберем еще один пример, который больше всего подходит под нашу ситуацию. Предположим, у нас есть список работников офиса, каждый из которых обозначен определенным кодом, а также их возрастом. Но в таблице еще не все поля указаны. Наша задача – осуществить проверку, все ли поля заполнены и вывести сообщение с количеством полей, которые не были заполнены. 

Сама таблица выглядит так.

Как определить - пустая ячейка, или в ней содержатся данные

9

Чтобы реализовать поставленную задачу, нам нужна такая формула. 

=ЕСЛИ(СУММ(—ЕПУСТО(B3:B12));СЧИТАТЬПУСТОТЫ(B3:B12)&» поля не заполнены»;СРЗНАЧ(B3:B12))

Функция ЕСЛИ дает возможность осуществить проверку набора ячеек на предмет того, есть ли среди них пустые значения (для этого используется функция —ЕПУСТО с соответствующими аргументами). Если в итоге суммирования было возвращено положительное значение, то будет показан текст, в котором записано, сколько ячеек без значения. Для этого используется функция СЧИТАТЬПУСТОТЫ. А с помощью знака & мы соединяем несколько значений. 

Получается такой документ.

Как определить - пустая ячейка, или в ней содержатся данные

10

При этом нужно помнить про все особенности и ограничения применения функции ЕСЛИ, описанные выше. 

Особенности применения функции ЕПУСТО в Excel

Есть несколько типов функций, и ЕПУСТО принадлежит к категории логических. Простыми словами, она проверяет какое-то выражение на предмет соответствия определенному критерию. Таких функций насчитывается еще огромное количество, и это не только указанная выше ЕСЛИ. Также к таким функциям относятся такие операторы, как ЕССЫЛКА, ЕЧИСЛО и так далее. Все они возвращают одно из двух возможных значений: истинное или ложное. 

Если записать функцию, ее синтаксис будет следующим.

=ЕПУСТО(значение)

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

Есть ряд особенностей, которые берутся в учет, когда пользователь собирается работать с этой функцией:

  1. Нельзя указывать конкретное значение, как параметр, поскольку тогда будет автоматически возвращено значение «ЛОЖЬ». Все дело в том, что такое значение априори не может содержат никаких значений. 
  2. Если перед нами стоит задача сделать так, чтобы было возвращена «ИСТИНА» в случае заполненности ячейки любой информацией, то нужно использовать сразу две функции: НЕ и ЕПУСТО. Тогда сначала нужно использовать первую, а потом вторую в качестве аргумента. 
  3. Использование функции АДРЕС, как параметр функции ЕПУСТО. бесполезно. Тогда всегда будет возвращаться результат, что критерию значение не соответствует. Все потому, что функцией АДРЕС осуществляется возвращение ссылки, которая сама по себе уже является разновидностью информации даже в том случае, если в ячейке, на которую она ссылается, нет никаких данных. 
  4. Значение «ЛОЖЬ» будет в качестве итога даже в той ситуации, когда есть ошибка. Все потому, что какая-то информация содержится в ней в любом случае, пусть даже неверная. А если речь идет об информации про ошибку, то это еще и полезная информация. А ссылка уже может считаться полноценным типом данных. 
  5. Очень часто пользователи забывают о формуле массива, чтобы осуществить проверку сразу большого количества ячеек. Иначе значение, возвращаемое функцией, будет неправильным. 

Выводы

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

Кроме двух функций, также возможно использование и макросов для того, чтобы понять, есть ли информация в определенной ячейке, или нет. выше были приведены примеры кода, которые позволяют самостоятельно написать подобную подпрограмму. Правда. нужно ее адаптировать под себя. заменив соответствующие ячейки на свои. Эту проблему можно решить с помощью использования макроса на активную ячейку. В таком случае просто достаточно нажать на ту ячейку, которую нужно проверить, после чего программа все сделает за вас. 

Оцените качество статьи. Нам важно ваше мнение:

Функция ЕПУСТО в Excel используется для наличия текстовых, числовых, логических и прочих типов данных в указанной ячейке и возвращает логическое значение ИСТИНА, если ячейка является пустой. Если в указанной ячейке содержатся какие-либо данные, результатом выполнения функции ЕПУСТО будет логическое значение ЛОЖЬ.

Примеры использования функции ЕПУСТО в Excel

Пример 1. В таблице Excel находятся результаты (баллы) по экзамену, который проводился в учебном заведении. В данной электронной ведомости напротив некоторых студентов оценки не указаны, поскольку их отправили на пересдачу. В столбце рядом вывести текстовую строку «Сдал» напротив тех, кому выставили оценки, и «На пересдачу» — напротив не сдавших с первого раза.

Исходные данные:

Пример 1.

Выделим ячейки C3:C18 и запишем следующую формулу:

Формула ЕСЛИ выполняет проверку возвращаемого результата функции ЕПУСТО для диапазона ячеек B3:B18 и возвращает один из вариантов («На пересдачу» или «Сдал»). Результат выполнения функции:

ЕПУСТО.

Теперь часть данной формулы можно использовать для условного форматирования:

  1. Выделите диапазон ячеек C3:C18 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
  2. Условное форматирование.

  3. В появившемся окне «Создание правила форматирования» выберите опцию: «Использовать формулы для определения форматируемых ячеек» и введите следующую формулу:
  4. Использовать формулы.

  5. Нажмите на кнопку «Формат» (как на образцу), потом укажите в окне «Формат ячеек» красный цвет заливки и нажмите ОК на всех открытых окнах:
  6. Формат ячеек.

На против незаполненных (пустых) ячеек или двоек мы получаем соответственное сообщение «На пересдачу» и красную заливку.



Почему нужно использовать функцию ЕПУСТО при проверке пустых ячеек

У выше указанном примере можно изменить формулу используя двойные кавычки («») в место функции проверки ячеек на пустоту, и она также будет работать:

=ЕСЛИ(ИЛИ(B3=»»;B3=2);»На пересдачу»;»Сдал»)

Но не всегда! Все зависит от значений, которые могут содержать ячейки. Обратите внимание на то как по-разному себя ведут двойные кавычки, и функция ЕПУСТО если у нас в ячейках находятся одни и те же специфические значения:

специфические значения.

Как видно на рисунке в ячейке находится символ одинарной кавычки. Первая формула (с двойными кавычками вместо функции) ее не видит. Более того в самой ячейке A1 одинарная кавычке не отображается так как данный спецсимвол в Excel предназначенный для отображения значений в текстовом формате. Это удобно, например, когда нам нужно отобразить саму формулу, а не результат ее вычисления как сделано в ячейках D1 и D2. Достаточно лишь перед формулой ввести одинарную кавычку и теперь отображается сама формула, а не возвращаемый ее результат. Но функция ЕПУСТО видит, что в действительности ячейка А1 не является пустой!

Проверка на пустую ячейку в таблице Excel

Пример 2. В таблице Excel записаны некоторые данные. Определить, все ли поля заполнены, или есть как минимум одно поле, которое является пустым.

Исходная таблица данных:

Пример 2.

Чтобы определить наличие пустых ячеек используем следующую формулу массива (CTRL+SHIFT+Enter):

Функция СУММ используется для определения суммы величин, возвращаемых функцией —ЕПУСТО для каждой ячейки из диапазона B3:B17 (числовых значений, поскольку используется двойное отрицание). Если запись СУММ(—ЕПУСТО(B3:B17) возвращает любое значение >0, функция ЕСЛИ вернет значение ИСТИНА.

Результат вычислений:

Результат вычислений.

То есть, в диапазоне B3:B17 есть одна или несколько пустых ячеек.

Примечание: в указанной выше формуле были использованы символы «—». Данный вид записи называется двойным отрицанием. В данном случае двойное отрицание необходимо для явного преобразования данных логического типа к числовому. Некоторые функции Excel не выполняют автоматического преобразования данных, поэтому механизм преобразования типов приходится запускать вручную. Наиболее распространенными вариантами преобразования текстовых или логических значений к числовому типу является умножение на 1 или добавление 0 (например, =ИСТИНА+0 вернет число 1, или =«23»*1 вернет число 23. Однако использование записи типа =—ИСТИНА ускоряет работу функций (по некоторым оценкам прирост производительности составляет до 15%, что имеет значение при обработке больших объемов данных).

Как посчитать количество пустых ячеек в Excel

Пример 3. Рассчитать средний возраст работников офиса. Если в таблице заполнены не все поля, вывести соответствующее сообщение и не выполнять расчет.

Таблица данных:

Пример 3.

Формула для расчета (формула массива):

Функция ЕСЛИ выполняет проверку диапазона на наличие пустых ячеек (выражение СУММ(—ЕПУСТО(B3:B12))). Если СУММ вернула значение >0, будет выведено сообщение, содержащее количество незаполненных данными ячеек (СЧИТАТЬПУСТОТЫ) и строку «поля не заполнены», которые склеены знаком «&» (операция конкатенации).

Результат вычислений:

СЧИТАТЬПУСТОТЫ.

Особенности использования функции ЕПУСТО в Excel

Функция ЕПУСТО в Excel относится к числу логических функций (выполняющих проверку какого-либо условия, например, ЕСЛИ, ЕССЫЛКА, ЕЧИСЛО и др., и возвращающих результаты в виде данных логического типа: ИСТИНА, ЛОЖЬ). Синтаксическая запись функции:

=ЕПУСТО(значение)

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

Примечания:

  1. Если в качестве аргумента функции было явно передано какое-либо значение (например, =ЕПУСТО(ИСТИНА), =ЕПУСТО(«текст»), =ЕПУСТО(12)), результат ее выполнения – значение ЛОЖЬ.
  2. Если требуется, чтобы функция возвращала значение ИСТИНА, если ячейка не является пустой, ее можно использовать совместно с функцией НЕ. Например, =НЕ(ЕПУСТО(A1)) вернет ИСТИНА, если A1 не является пустой.
  3. Запись типа =ЕПУСТО(АДРЕС(x;y)) всегда будет возвращать значение ложь, поскольку функция АДРЕС(x;y) возвращает ссылку на ячейку, то есть непустое значение.
  4. Функция возвращает значение ЛОЖЬ даже в тех случаях, когда в переданной в качестве аргумента ячейке содержится ошибка или ссылка на ячейку. Это суждение справедливо и для случаев, когда в результате выполнения какой-либо функции в ячейку была выведена пустая строка. Например, в ячейку A1 была введена формула =ЕСЛИ(2>1;””;ЛОЖЬ), которая вернет пустую строку «». В этом случае функция =ЕПУСТО(A1) вернет значение ЛОЖЬ.
  5. Если требуется проверить сразу несколько ячеек, можно использовать функцию в качестве формулы массива (выделить требуемое количество пустых ячеек, ввести формулу «=ЕПУСТО(» и в качестве аргумента передать диапазон исследуемых ячеек, для выполнения использовать комбинацию клавиш Ctrl+Shift+Enter)

Скачать примеры функции ЕПУСТО в Excel

Список данных может быть заполнен пустыми ячейками. Чтобы найти первую пустую ячейку в выбранном диапазоне столбца, просмотрите приведенное ниже руководство для получения дополнительных сведений.

Найдите первую пустую ячейку в столбце с формулой
Найдите первую пустую ячейку в столбце с кодом 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-дневная гарантия возврата денег.

вкладка kte 201905


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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (2)


Оценок пока нет. Оцените первым!

 

maverick

Пользователь

Сообщений: 20
Регистрация: 01.01.1970

Прошу помощи знающих.  
Задача: имеем таблицу данных, которая постоянно пополняется (добавляются строки)  
В таблице важным вяляется второй столбец; ячейки в нем заполнены в каждой строке.  
Необходим макрос, который будет устанавливать табличный курсор в первую свободную (пустую) ячейку внизу этого столбца (т.е. фактически в следующую заполняему строку таблицы).  

  К сожалению, я пока «не очень» дружен с VBA =)  
Пробовал воспользоваться простой записью макроса и примитивной последовательностью: поиск крайней заполненной ячейки с помощью Ctrl+PageDown и шаг вниз с помощью стрелки. Но попытка провалились, т.к. выбор крайней заполненной ячейки он понимает и записывает, как надо, а вот действия клавиатурных стрелок запоминаются не как «перемещение вниз (вверх, влево, вправо)», а как выбор какой-то конкретной ячейки с конкретным адресом.  

  Помогите, плз.

 

vlanib

Пользователь

Сообщений: 26
Регистрация: 01.01.1970

[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В»

 

Юрий М

Модератор

Сообщений: 60586
Регистрация: 14.09.2012

Контакты см. в профиле

В общем случае макрос может выглядеть так:  
Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,2).End(xlUp).Row  
cells(iLastRow+1,2).Select  
End Sub

 

maverick

Пользователь

Сообщений: 20
Регистрация: 01.01.1970

{quote}{login=vlanib}{date=13.05.2010 10:37}{thema=}{post}[В1].End(xlDown).Offset(1, 0).Value = «Последняя свободная ячейка столбца В»{/post}{/quote}

  уточнение: мне необходима первая, а не крайняя свободная ячейка. Можно как-то переделать?

 

maverick

Пользователь

Сообщений: 20
Регистрация: 01.01.1970

{quote}{login=Юрий М}{date=13.05.2010 10:41}{thema=}{post}В общем случае макрос может выглядеть так:  
Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,2).End(xlUp).Row  
cells(iLastRow+1,2).Select  
End Sub{/post}{/quote}  

  Спасибо огромное!  
Я совершенно не понял как это работает, но это РАБОТАЕТ! =)))

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

А как переделать код:  

  Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,2).End(xlUp).Row  
cells(iLastRow+1,2).Select  
End Sub  

  , что бы искалась первая пустая ячейка в том столбце, в котором находится активная ячейка?

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,activeCell.Column).End(xlUp).Row  
cells(iLastRow+1,activeCell.Column).Select  
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

Спасибо!  
Один вопрос. Если в столбце нет заполненых ячеек, то находится ячейка во второй строке…  
Почему и как сделать правильно (в первой)?

 

maverick

Пользователь

Сообщений: 20
Регистрация: 01.01.1970

тут же возник попутный вопрос:  
в указаном столбце постоянно добавляются значения; это числа (что-то типа порядкового номера строки).  
Как в тоу самую первую пустую ячейку подставить максимальное число этого столбца? А если быть точнее — «максимальное плюс один»

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,activeCell.Column).End(xlUp).Row  
if iLastRow > 1 then iLastRow = iLastRow + 1  
cells(iLastRow,activeCell.Column).Select  
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

{quote}{login=maverick}{date=13.05.2010 11:16}{thema=}{post}тут же возник попутный вопрос:  
в указаном столбце постоянно добавляются значения; это числа (что-то типа порядкового номера строки).  
Как в тоу самую первую пустую ячейку подставить максимальное число этого столбца? А если быть точнее — «максимальное плюс один»{/post}{/quote}Максимальное и порядковый номер это разные вещи. Если нужно просто следующий порядковый номер в первую пустую ячейку внести:  

  Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,1).End(xlUp).Row  
cells(iLastRow+1,1).Value =cells(iLastRow,1)+1  
End Sub  

  Если максимальное+1  
Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,1).End(xlUp).Row  
cells(iLastRow+1,1).Value =application.Max(Range(«A1:A» & iLastRow))+1  
End Sub  

  Все применено к первому столбцу

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Спасибо! =)  
кой-чего подправил и всё работает =)))

 

А как можно такое провернуть:  
Номера строк у меня добавляются автоматом. При этом так же автоматически создаётся копия листа-шаблона.  
Надо теперь присвоить имя новому (только что созданому) листу, равное новому номеру строки.  
Возможно ли такое?

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Какое отношение вопрос имеет к данной теме? Создавайте тему по правилам и получите ответ.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

А как прописать, что бы просматривался только диапазон P4:P16 , т.к. после этого идут дальше заполненные ячейки.  
   Dim iLastRow As Long  
   iLastRow = Cells(Rows.Count, 16).End(xlUp).Row  
   Cells(iLastRow + 1, 16).Select

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Range(«P16»).End(xlUp).Select

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

{quote}{login=The_Prist}{date=13.05.2010 11:16}{thema=}{post}Sub Макрос1()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count,activeCell.Column).End(xlUp).Row  
if iLastRow > 1 then iLastRow = iLastRow + 1  
cells(iLastRow,activeCell.Column).Select  
End Sub{/post}{/quote}А так:  
Sub www()  
   Columns(ActiveCell.Column).SpecialCells(4)(1).Select  
End Sub  
?

Я сам — дурнее всякого примера! …

 

{quote}{login=The_Prist}{date=24.12.2011 01:20}{thema=}{post}Range(«P16»).End(xlUp).Select{/post}{/quote}  

     Dim iLastRow As Long  
   iLastRow = Range(«P16»).End(xlUp).Select  
   Cells(iLastRow + 1, 16).Select  

  Переносит на ячейку Р2, а необходимо с верху вниз с Р4 до Р16 в зависимости от заполнения ячеек. Т.к. ячейка Р19 и ниже содержит данные.  
Спасибо.

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

Вот это  
iLastRow = Range(«P16»).End(xlUp).Select  
откуда взяли? :)  

  Можно так:  
Sub tt()  
Dim iLastRow As Long  
iLastRow = Range(«P16»).End(xlUp).Row  
Cells(iLastRow + 1, 16).Select  
End Sub  

  Это от P16 идём вверх.  
Можно наоборот, от P3 идём вниз по пустым:  

  Sub tt()  
Range(«P3:P16»).SpecialCells(xlCellTypeBlanks).Cells(1) = «Пишем_сюда»  
End Sub

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

Вернее так, с обработкой ошибки, когда всё будет заполнено:  

    Sub tt()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1) = «Пишем_сюда»  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub

 

{quote}{login=Hugo}{date=25.12.2011 01:58}{thema=}{post}Вернее так, с обработкой ошибки, когда всё будет заполнено:  

    Sub tt()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1) = «Пишем_сюда»  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub{/post}{/quote}  

  Спасибо. Но нужно чтобы он выделял ячейки с Р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()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1) = «Пишем_сюда»  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub{/post}{/quote}  

  Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную.  
Спасибо.{/post}{/quote}  

  Попробую так:  

  Sub tt()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1).Select  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub

 

{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()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1) = «Пишем_сюда»  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub{/post}{/quote}  

  Спасибо. Но нужно чтобы он выделял ячейки с Р4 до Р16, а в этом макросе он вставляет в свободную ячейку надпись Всё заполнено!!!. Т.к. данные в эти ячейка вставляются тоже через макрос а не в ручную.  
Спасибо.{/post}{/quote}  

  Попробую так:  

  Sub tt()  
On Error Resume Next  
Err.Clear  
Range(«P4:P15»).SpecialCells(xlCellTypeBlanks).Cells(1).Select  
If Err <> 0 Then MsgBox «Всё заполнено!!!»  
Err.Clear  
End Sub{/post}{/quote}  

    Опа. Заработало. Спасибо всем!!!

 

Убрал лишнее и оставил только это:  
 Range(«P4:P16»).SpecialCells(xlCellTypeBlanks).Cells(1).Select

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

On Error Resume Next всёж оставьте :)

 

Станислав

Пользователь

Сообщений: 120
Регистрация: 11.10.2010

{quote}{login=Hugo}{date=25.12.2011 02:29}{thema=}{post}On Error Resume Next всёж оставьте :){/post}{/quote}  

  Спасибо.

 

А не подскажите ли вы, мне нужно нечто похожее, как выбирать каждую ячейку первого столбца, пока не наткнешься на пустую, естественно после выбора будет какое-либо действие, и это вроде как должно выполняться через цикл, если я правильно понимаю… помогите пожалуйста

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

floove, Вы демонстрируете недюжинную сообразительность. Тема называется «Поиск первой свободной ячейки в стообце». Все ответы посвящены этому. И тут появляетесь Вы и задаете вопрос: «А как найти первую свободную ячейку в столбце?». Браво!

Я сам — дурнее всякого примера! …

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

#30

28.12.2011 01:39:16

Сергей, мне кажется, что ты ошибаешься — тут нужен цикл по занятым до первой свободной.

Like this post? Please share to your friends:
  • Поиск с разных таблиц excel
  • Поиск с помощью vba excel
  • Поиск с отборов excel
  • Поиск с исключением excel
  • Поиск с вставкой в excel