Пустая ячейка Excel vba не пуста

Обновлено: 01.07.2024

Функция IsEmpty VBA может использоваться для проверки того, пуста ли ячейка, точно так же, как функция рабочего листа Excel IПУСТО. Но это еще не все!

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

Скоро мы перейдем к некоторым примерам, но сначала давайте начнем это руководство с некоторых основ IsEmpty.

IsEmpty принимает один аргумент:

Это дает вам результат в виде логического логического значения. Напомним, логическое логическое значение возвращает либо True, либо False .

Аргумент «Выражение», который принимает IsEmpty, является Variant, так что это может быть что угодно: переменная, объект, диапазон и многое другое.

Как я упоминал в своем учебном пособии по IsNumeric VBA, перед применением определенных функций VBA рекомендуется проверять, пусты ли ваши ячейки.

Давайте рассмотрим несколько примеров, чтобы понять, что я имею в виду.

Примеры IsEmpty

Проверить, пуста ли ячейка

Создавайте мощные макросы с помощью нашего бесплатного комплекта разработчика VBA

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

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

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

Захват пустых ячеек дает вам контроль над вашим макросом и позволяет обрабатывать эти исключения.

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

Комментарии в этом примере VBA объясняют, что происходит. Этот макрос проверяет все значения в диапазоне A1:B5 и ищет пустые ячейки. Если он найден, макрос распознает его и дает вам возможность запрограммировать два разных пути потока для двух сценариев.

Проверить, инициализирована ли переменная

Первый MsgBox возвращает True, поскольку переменная str1 не была инициализирована — она пуста. Другими словами, хотя она была объявлена ​​как переменная типа Variant, ей не было присвоено значение.

Как только вы присвоите ему значение Hello there! , переменная больше не пуста, поэтому функция IsEmpty возвращает False. Он был инициализирован!

Только когда вы вернете для варианта значение Empty, команда IsEmpty снова вернет значение True. Это то, что мы сделали прямо перед нашим третьим MsgBox.

Теперь пришло время для шокера. Это работает не для всех типов данных! В этом примере это работает только для Variant, потому что значение по умолчанию для варианта — Empty . Если мы объявим переменную как строку, функция IsEmpty всегда будет возвращать False. Это потому, что значением по умолчанию для строки является пустая строка "" . Он поставляется предварительно инициализированным.

Пустая строка — это не то же самое, что неинициализированная переменная. Пустая строка НЕ ​​считается пустой, как определено функцией IsEmpty. Попробуйте сами:

Вы можете убедиться, что значением по умолчанию является пустая строка, щелкнув правой кнопкой мыши строку str1 и выбрав «Добавить отслеживание». Войдя в свой макрос (нажав кнопку F8 один раз), вы увидите, что значение по умолчанию равно "" . Продолжайте выполнять свой макрос, и вы увидите, что все три MsgBox возвращают False. VBA — забавная штука, вот так.

Заключительные мысли

Хотя его можно использовать для проверки инициализации переменных, чаще всего IsEmpty используется для проверки наличия пустых ячеек. Изучив эти примеры, вы теперь сможете выполнять проверки IsEmpty как для отдельных ячеек, так и для целых диапазонов!

Помните, что при применении к ячейке функция VBA IsEmpty аналогична функции листа Excel ISBLANK. Если вы знакомы с использованием =ISBLANK() в ячейках листа, изучение функции IsEmpty VBA не составит труда.

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

Готовы делать больше с VBA?
Мы собрали гигантский PDF-файл с более чем 300 готовыми макросами и хотим, чтобы вы получили его бесплатно. Введите свой адрес электронной почты ниже, и мы вышлем вам копию вместе с нашим комплектом разработчика VBA, полным советов, приемов и ярлыков VBA.

Прежде чем мы начнем, я хочу сообщить вам, что мы разработали набор шпаргалок по VBA, чтобы вам было проще писать лучшие макросы. Мы включили более 200 советов и 140 примеров макросов, поэтому в них есть все, что вам нужно знать, чтобы стать лучшим программистом VBA.

Общая формула для проверки того, не является ли ячейка пустой, выглядит следующим образом:

Чтобы выполнить действие только тогда, когда ячейка не пуста (не пуста), вы можете использовать формулу, основанную на функции ЕСЛИ. В показанном примере столбец D содержит даты завершения задачи. Формула в ячейке E5:

Символ <> — это логический оператор, который означает «не равно», поэтому выражение <>»» означает «не ничто» или «не пусто». Когда столбец D содержит значение, результатом является ИСТИНА, а ЕСЛИ возвращает "Готово". Если столбец D пуст, результатом является ЛОЖЬ, а ЕСЛИ возвращает пустую строку ("").

Чтобы отображались как "Готово", так и "Не выполнено", можно настроить формулу следующим образом:

Пустой

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

Например, =ISBLANK(A1) вернет значение TRUE, если A1 пусто, и FALSE, если A1 содержит текст и формулу (даже если формула возвращает пустую строку "").

Вероятно, лучше всего думать, что ISBLANK означает "пусто", поскольку он может возвращать FALSE, когда ячейки выглядят пустыми, но на самом деле таковыми не являются. Например, если A1 содержит символ пробела (" ") или формула, которая возвращает пустую строку (""), A1 будет выглядеть пустым, но IПУСТО(A1) вернет ЛОЖЬ в обоих случаях.

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

Обратите внимание, что результаты TRUE и FALSE поменялись местами. Чтобы сохранить исходную последовательность, сохраните первоначальную идею <>"", вы можете добавить функцию НЕ:

В следующем примере, чтобы быть уверенным, что выбранная ячейка на самом деле пуста (даже с учетом пробела), мы можем использовать функции ЕСЛИ, ИЛИ и ОБРЕЗАТЬ, чтобы убедиться, что выбранное пространство считается «пустым», вставив , если TRUE, пустой текст или, если FALSE, отображать содержимое выбранной ячейки без каких-либо изменений:

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

С помощью IsEmpty (VBA)

Функция ISEMPTY может использоваться только в коде VBA в Microsoft Excel. Мы можем использовать функцию ISEMPTY для проверки ячейки рабочего листа или переменной. Давайте рассмотрим оба этих случая.

С ячейкой листа

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

Вот пример того, как проверить, пуста ли ячейка листа, с помощью функции ISEMPTY:

В этом примере мы проверим, пуста ли ячейка A1. Если ячейка A1 пуста, появится сообщение "Ячейка A1 пуста".

С переменной

Функция ISEMPTY также может использоваться для проверки того, была ли инициализирована переменная. Если переменная не была инициализирована, функция ISEMPTY вернет значение true. В противном случае функция вернет false.

Переменная не инициализирована

Давайте сначала рассмотрим пример, когда переменная не была инициализирована:

В этом примере переменная с именем LResult была объявлена, но не была инициализирована значением. В результате функция ISEMPTY вернет значение true и отобразит сообщение "Переменная не была инициализирована".

Переменная инициализирована

Теперь мы изменим приведенный выше пример и инициализируем переменную LResult перед вызовом функции ISEMPTY.

Поскольку переменная LResult теперь инициализирована значением "example.com — отличный ресурс!", функция ISEMPTY вернет значение false, и окно сообщения отображаться не будет.

Выделить пустые ячейки

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

Например, выберите диапазон A1:H8.

Excel — если ячейка не пустой (формула и VBA)

На вкладке "Главная" в группе "Стили" нажмите "Условное форматирование".

Excel — если ячейка не пусто (формула и VBA)

Нажмите "Правила выделения ячеек", "Дополнительные правила".

Excel — если ячейка не пусто (формула и VBA)

Выберите «Пробелы» в раскрывающемся списке, выберите стиль форматирования и нажмите «ОК».

В этом учебном пособии показано, как проверить, не является ли ячейка пустой, и вернуть значение, если проверка верна или ложна, с помощью формул Excel, функций ЕСЛИ, НЕ и ЕПУСТО или VBA

ФОРМУЛА EXCEL 1. Если ячейка не пуста с помощью функции ЕСЛИ

Если ячейка не пуста

Если ячейка не пуста

АРГУМЕНТЫ
cell_ref: ячейка, которую вы хотите проверить, не пуста ли она.
value_if_true: возвращает значение, если проверяемая ячейка не пуста.
value_if_false: возвращает значение, если проверяемая ячейка пуста.

АРГУМЕНТЫ
cell_ref: ячейка, которую вы хотите проверить, не пуста ли она.
value_if_true: возвращает значение, если проверяемая ячейка не пуста.
value_if_false: возвращает значение, если проверяемая ячейка пуста.

В этой формуле используется функция ЕСЛИ с критерием проверки, состоящим из двух двойных кавычек ("") без значения, вставленного между ними, и знака "не равно" (<>) перед ними, чтобы оценить, является ли ячейка не пуста и возвращает определенное значение. Выражение <>"" означает "не пустой". Если ячейка не пуста, формула вернет значение, которое было присвоено как истинное значение, или, если ячейка пуста, формула вернет значение, назначенное как ложное значение.

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

Нажмите кнопку "Жестко закодированная" или "Ссылка на ячейку", чтобы просмотреть формулу, в которой возвращаемые значения непосредственно введены в формулу или ссылаются на определенные ячейки, в которые записываются эти значения, соответственно.

В этом примере формула проверяет, не является ли конкретная ячейка пустой. Если ячейка не пуста, формула вернет значение «Да» (жестко закодированный пример) или значение в ячейке C5 (пример ссылки на ячейку). Если ячейка пуста, формула вернет значение "Нет" (жестко закодированный пример) или значение в ячейке C6 (пример ссылки на ячейку).

Если вы используете формулу со значениями, введенными непосредственно в формулу, и хотите вернуть числовое значение вместо текстового, вам не нужно применять двойные кавычки вокруг значений, которые должны быть возвращены, например. (=ЕСЛИ(С5<>"",1,0)).

ФОРМУЛА EXCEL 2. Если ячейка не пуста с помощью функций ЕСЛИ, НЕ и ЕПУСТО

Если ячейка не пуста

Если ячейка не пуста

АРГУМЕНТЫ
cell_ref: ячейка, которую вы хотите проверить, пуста ли она.
value_if_true: возвращаемое значение, если проверяемая ячейка пуста.
value_if_false: возвращаемое значение, если проверяемая ячейка не пуста.

АРГУМЕНТЫ
cell_ref: ячейка, которую вы хотите проверить, пуста ли она.
value_if_true: возвращаемое значение, если проверяемая ячейка пуста.
value_if_false: возвращаемое значение, если проверяемая ячейка не пуста.

В этой формуле используется комбинация функций ЕСЛИ, НЕ и ЕПУСТО, чтобы определить, не является ли ячейка пустой, и вернуть определенное значение. В отличие от первой формулы, в которой используются двойные кавычки ("") для проверки того, не пуста ли выбранная ячейка, в этой формуле используются функции НЕ и ЕПУСТО. Если ячейка не пуста, функция ЕПУСТО вернет ЛОЖЬ, в противном случае она вернет ИСТИНА. Затем функция НЕ вернет противоположное тому, что вернула функция ЕПУСТО. Следовательно, если ячейка не пуста, комбинация функций НЕ и ЕПУСТО вернет значение ИСТИНА. Затем формула вернет значение, которое было присвоено как истинное значение, или, если ячейка пуста, формула вернет значение, назначенное как ложное значение.

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

Нажмите кнопку "Жестко закодированная" или "Ссылка на ячейку", чтобы просмотреть формулу, в которой возвращаемые значения непосредственно введены в формулу или ссылаются на определенные ячейки, в которые записываются эти значения, соответственно.

В этом примере формула проверяет, не является ли конкретная ячейка пустой. Если ячейка не пуста, формула вернет значение «Да» (жестко закодированный пример) или значение в ячейке C5 (пример ссылки на ячейку). Если ячейка пуста, формула вернет значение "Нет" (жестко закодированный пример) или значение в ячейке C6 (пример ссылки на ячейку).

Если вы используете формулу со значениями, введенными непосредственно в формулу, и хотите вернуть числовое значение вместо текстового, вам не нужно применять двойные кавычки вокруг значений, которые должны быть возвращены, например. (= ЕСЛИ (НЕ (ПУСТО (C5)), 1,0)).

КОД VBA 1. Если ячейка не пуста, используя оператор If

Если ws.Cells(x, 3) <> "" Тогда

Если ws.Cells(x, 3) <> "" Тогда

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной диапазон: выберите выходной диапазон, изменив ссылку на ячейку ("D5") в коде VBA.
Ячейка для проверки: выберите ячейку, которую вы хотите проверить, не является ли она пустой, изменив ссылку на ячейку ("C5") в коде VBA.
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение «Да». Если ячейка пуста, код VBA вернет значение «Нет». Оба эти значения можно изменить на любое желаемое значение, изменив их напрямую в коде VBA.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.
Примечание 2. Если ваш результат True или False является текстовым значением, его необходимо заключить в кавычки (""). Однако, если результатом является числовое значение, его можно ввести без использования кавычек.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной диапазон: выберите выходной диапазон, изменив ссылку на ячейку ("D9") в коде VBA.
Ячейка для проверки: выберите ячейку, которую вы хотите проверить, не является ли она пустой, изменив ссылку на ячейку ("C9") в коде VBA.
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение, хранящееся в ячейке C5. Если ячейка пуста, код VBA вернет значение, хранящееся в ячейке C6. Оба эти значения можно изменить на любое желаемое значение, либо сославшись на другую ячейку, которая фиксирует значение, которое вы хотите вернуть, либо изменив значения в этих ячейках.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной и тестовый диапазон: выберите выходные строки и строки, содержащие ячейки, подлежащие тестированию, путем изменения значений x (от 5 до 11). В этом примере предполагается, что выходные данные и связанная тестовая ячейка будут находиться в одной строке.
Тестовый столбец: выберите столбец, содержащий ячейки, которые необходимо протестировать, изменив число 3 в ws.Cells(x, 3).
Выходной столбец: выберите выходной столбец, изменив число 4 в ws.Cells(x, 4).
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение «Да». Если ячейка пуста, код VBA вернет значение «Нет». Оба эти значения можно изменить на любое желаемое значение, изменив их напрямую в коде VBA.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.
Примечание 2. Если ваш результат True или False является текстовым значением, его необходимо заключить в кавычки (""). Однако, если результатом является числовое значение, его можно ввести без использования кавычек.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной и тестовый диапазон: выберите выходные строки и строки, содержащие ячейки, которые необходимо протестировать, изменив значения x (от 9 до 15). В этом примере предполагается, что выходные данные и связанная тестовая ячейка будут находиться в одной строке.
Тестовый столбец: выберите столбец, содержащий ячейки, которые необходимо протестировать, изменив число 3 в ws.Cells(x, 3).
Выходной столбец: выберите выходной столбец, изменив число 4 в ws.Cells(x, 4).
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение, хранящееся в ячейке C5. Если ячейка пуста, код VBA вернет значение, хранящееся в ячейке C6. Оба эти значения можно изменить на любое желаемое значение, либо сославшись на другую ячейку, которая фиксирует значение, которое вы хотите вернуть, либо изменив значения в этих ячейках.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.

КОД VBA 2. Если ячейка не пуста, используя Not и IsEmpty

Если нет (IsEmpty(ws.Cells(x, 3))), то

Если нет (IsEmpty(ws.Ячейки(x, 3))) Тогда

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной диапазон: выберите выходной диапазон, изменив ссылку на ячейку ("D5") в коде VBA.
Ячейка для проверки: выберите ячейку, которую вы хотите проверить, не является ли она пустой, изменив ссылку на ячейку ("C5") в коде VBA.
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение «Да». Если ячейка пуста, код VBA вернет значение «Нет». Оба эти значения можно изменить на любое желаемое значение, изменив их напрямую в коде VBA.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как непустую.
Примечание 2. Если ваш результат True или False является текстовым значением, его необходимо заключить в кавычки (""). Однако, если результатом является числовое значение, его можно ввести без использования кавычек.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной диапазон: выберите выходной диапазон, изменив ссылку на ячейку ("D9") в коде VBA.
Ячейка для проверки: выберите ячейку, которую вы хотите проверить, не является ли она пустой, изменив ссылку на ячейку ("C9") в коде VBA.
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение, хранящееся в ячейке C5. Если ячейка пуста, код VBA вернет значение, хранящееся в ячейке C6. Оба эти значения можно изменить на любое желаемое значение, либо сославшись на другую ячейку, которая фиксирует значение, которое вы хотите вернуть, либо изменив значения в этих ячейках.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как непустую.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной и тестовый диапазон: выберите выходные строки и строки, содержащие ячейки, подлежащие тестированию, путем изменения значений x (от 5 до 11). В этом примере предполагается, что выходные данные и связанная тестовая ячейка будут находиться в одной строке.
Тестовый столбец: выберите столбец, содержащий ячейки, которые необходимо протестировать, изменив число 3 в ws.Cells(x, 3).
Выходной столбец: выберите выходной столбец, изменив число 4 в ws.Cells(x, 4).
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение «Да». Если ячейка пуста, код VBA вернет значение «Нет». Оба эти значения можно изменить на любое желаемое значение, изменив их напрямую в коде VBA.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.
Примечание 2. Если ваш результат True или False является текстовым значением, его необходимо заключить в кавычки (""). Однако, если результатом является числовое значение, его можно ввести без использования кавычек.

КЛЮЧЕВЫЕ ПАРАМЕТРЫ
Выходной и тестовый диапазон: выберите выходные строки и строки, содержащие ячейки, которые необходимо протестировать, изменив значения x (от 9 до 15). В этом примере предполагается, что выходные данные и связанная тестовая ячейка будут находиться в одной строке.
Тестовый столбец: выберите столбец, содержащий ячейки, которые необходимо протестировать, изменив число 3 в ws.Cells(x, 3).
Выходной столбец: выберите выходной столбец, изменив число 4 в ws.Cells(x, 4).
Выбор рабочего листа: выберите рабочий лист, который захватывает ячейки, которые вы хотите проверить, если они не пусты, и возвращает определенное значение, изменив имя листа анализа в коде VBA. Вы также можете изменить имя этой объектной переменной, изменив имя «ws» в коде VBA.
Верные и ложные результаты. В этом примере, если ячейка не пуста, код VBA вернет значение, хранящееся в ячейке C5. Если ячейка пуста, код VBA вернет значение, хранящееся в ячейке C6. Оба эти значения можно изменить на любое желаемое значение, либо сославшись на другую ячейку, которая фиксирует значение, которое вы хотите вернуть, либо изменив значения в этих ячейках.

ПРИМЕЧАНИЯ
Примечание 1. Если проверяемая ячейка возвращает значение (""), этот код VBA идентифицирует ячейку как пустую.

JA Gomez из Power Spreadsheets

Дж.А. Гомес

Учебное пособие по Excel VBA о том, как проверить, пуста ли ячейка или диапазон с помощью макросов

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

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

Используйте следующее оглавление, чтобы перейти к интересующему вас разделу.

Оглавление

Похожие руководства по VBA и макросам

Следующие учебные пособия по VBA и макросам могут помочь вам лучше понять и реализовать приведенное ниже содержание:

    Узнайте о часто используемых терминах VBA здесь.

Дополнительные учебные пособия по VBA и макросам можно найти в архивах.

Код VBA для проверки, пуста ли ячейка

Процесс, сопровождаемый кодом VBA, чтобы проверить, пуста ли ячейка


Объяснение оператора VBA

    VBA Construct: вступительный оператор оператора If… Then… Else.

    Оператор If… Then… Else проверяет указанное условие (IsEmpty(Cell)).

    Конструкция VBA: функция IsEmpty.

Функция IsEmpty:

    Принимает один параметр (выражение) типа данных Variant. В этой макроструктуре параметр представляет собой объект Range (ячейка).

Обычно можно вернуть объект Range с такими конструкциями, как Worksheet.Range, Worksheet.Cells (с Range.Item) или Range.Offset. Если вы явно объявляете переменную объекта для представления ячейки, используйте тип данных объекта Range.

    Конструкция VBA: условие оператора If… Then… Else.

  1. Элемент: StatementsIfCellIsEmpty.

    Конструкция VBA: операторы в операторе If… Then… Else.

    Конструкция VBA: предложение Else оператора If… Then… Else.

  1. Элемент: StatementsIfCellIsNotEmpty.

    Конструкция VBA: операторы Else в операторе If… Then… Else.

    Конструкция VBA: Закрытие инструкции If… Then… Else.

Пример макроса для проверки, пуста ли ячейка

В следующем примере макроса проверяется, пуста ли ячейка A5 рабочего листа с именем «Проверить, пуста ли ячейка» (myCell), и отображается окно сообщения, подтверждающее, пуста ячейка или не пуста.

Эффекты выполнения примера макроса для проверки, пуста ли ячейка

Следующий GIF иллюстрирует результаты выполнения примера макроса. Ячейка A5 (эта ячейка не пуста) не пуста, и отображаемое окно сообщения подтверждает, что это так.

Код VBA для проверки, пуста ли активная ячейка

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


< /p>

Объяснение оператора VBA

    VBA Construct: вступительный оператор оператора If… Then… Else.

    Оператор If… Then… Else проверяет указанное условие (IsEmpty(ActiveCell)).

    Конструкция VBA: функция IsEmpty.

Функция IsEmpty:

    Принимает один параметр (выражение) типа данных Variant. В этой макроструктуре параметр представляет собой объект Range (ActiveCell).

    Конструкция VBA: свойство Application.ActiveCell.

    Конструкция VBA: условие оператора If… Then… Else.

  1. Элемент: StatementsIfActiveCellIsEmpty.

    Конструкция VBA: операторы в операторе If… Then… Else.

    Конструкция VBA: предложение Else оператора If… Then… Else.

  1. Элемент: StatementsIfActiveCellIsNotEmpty.

    Конструкция VBA: операторы Else в операторе If… Then… Else.

    Конструкция VBA: Закрытие инструкции If… Then… Else.

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

В следующем примере макроса проверяется, пуста ли активная ячейка, и отображается окно сообщения, подтверждающее, является ли активная ячейка пустой или не пустой.

Эффекты выполнения примера макроса для проверки, пуста ли активная ячейка

Следующий GIF иллюстрирует результаты выполнения примера макроса.Активная ячейка (A6) пуста, и отображаемое окно сообщения подтверждает, что это так.

Код VBA для проверки наличия пустого диапазона

Процесс, сопровождаемый кодом VBA, чтобы проверить, пуст ли диапазон


Объяснение оператора VBA

    VBA Construct: вступительный оператор оператора If… Then… Else.

    Оператор If… Then… Else проверяет указанное условие (WorksheetFunction.CountA(CellRange) = 0).

    Конструкция VBA: метод WorksheetFunction.CountA.

Обычно вы можете вернуть объект Range с такими конструкциями, как свойство Worksheet.Range. Если вы явно объявляете переменную объекта для представления CellRange, используйте тип данных объекта Range.

    Конструкция VBA: = оператор сравнения.

    Выражение слева от оператора сравнения = (WorksheetFunction.CountA(CellRange)).

    Конструкция VBA: условие оператора If… Then… Else.

    True: если WorksheetFunction.CountA(CellRange) возвращает 0. Это происходит, когда CellRange пуст.

  1. Элемент: StatementsIfRangeIsEmpty.

    Конструкция VBA: операторы в операторе If… Then… Else.

    Конструкция VBA: предложение Else оператора If… Then… Else.

  1. Элемент: StatementsIfRangeIsNotEmpty.

    Конструкция VBA: операторы Else в операторе If… Then… Else.

    Конструкция VBA: Закрытие инструкции If… Then… Else.

Пример макроса для проверки наличия пустого диапазона

В следующем примере макроса проверяется, является ли диапазон, состоящий из ячеек с A7 по A11 рабочего листа с именем «Проверить, пуста ли ячейка» (myCellRange), пустым, и отображается окно сообщения, подтверждающее, является ли диапазон пустым или не пустым.

Эффекты выполнения примера макроса для проверки наличия пустого диапазона

Следующий GIF иллюстрирует результаты выполнения примера макроса. Ячейки с A7 по A11 (с заполнением) пусты, и отображаемое окно сообщения подтверждает, что это так.

Код VBA для проверки наличия пустых ячеек в диапазоне

Процесс, сопровождаемый кодом VBA, чтобы проверить, пуста ли какая-либо ячейка в диапазоне

< бр />

Объяснение оператора VBA

В следующем примере макроса проверяется, содержит ли диапазон, состоящий из ячеек с A13 по A17 листа с названием «Проверить, пуста ли ячейка» (myCellRange), какие-либо пустые ячейки, и отображается окно сообщения, подтверждающее, содержит ли диапазон пустые ячейки. .

Эффекты выполнения примера макроса для проверки того, является ли какая-либо ячейка в диапазоне пустой

Следующий GIF иллюстрирует результаты выполнения примера макроса. Ячейка A15 пуста. Отображаемое окно сообщения подтверждает, что диапазон ячеек, содержащий ячейки с A13 по A17 (с заполнением), содержит по крайней мере одну пустую ячейку (A15).

Ссылки на конструкции VBA, используемые в этом руководстве по VBA

Используйте следующие ссылки, чтобы посетить соответствующую веб-страницу в Microsoft Developer Network:

Читайте также: