Заменить 0 на пусто в excel vba
Всем нам приходится - кому реже, кому чаще - повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую "рутинную составляющую" - одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.
Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную.
Способ 1. Создание макросов в редакторе Visual Basic
Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel.
- В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис - Макрос - Редактор Visual Basic(Toos - Macro - Visual Basic Editor).
- В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)
:
К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:
Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:
-
Обычные модули - используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert - Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
Обычный макрос, введенный в стандартный модуль выглядит примерно так:
Давайте разберем приведенный выше в качестве примера макрос Zamena:
С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно.
Способ 2. Запись макросов макрорекордером
Макрорекордер - это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:
- Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу - запись останавливается.
- Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
- Если во время записи макроса макрорекордером вы ошиблись - ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.
Чтобы включить запись необходимо:
- в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись(Tools - Macro - Record New Macro)
- в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)
Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:
- Имя макроса - подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
- Сочетание клавиш - будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис - Макрос - Макросы - Выполнить(Tools - Macro - Macros - Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
- Сохранить в. - здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
- Эта книга - макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
- Новая книга - макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
- Личная книга макросов - это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.
После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .
Запуск и редактирование макросов
Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или - в старых версиях Excel - через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) :
- Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
- Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
- Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.
Создание кнопки для запуска макросов
Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:
Кнопка на панели инструментов в Excel 2003 и старше
Откройте меню Сервис - Настройка (Tools - Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый "колобок" - Настраиваемую кнопку (Custom button) :
Перетащите ее к себе на панель инструментов и затем щелкните по ней правой кнопкой мыши. В контекстом меню можно назначить кнопке макрос, выбрать другой значок и имя:
Кнопка на панели быстрого доступа в Excel 2007 и новее
Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :
Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:
Кнопка на листе
Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:
- В Excel 2003 и старше - откройте панель инструментов Формы через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms)
- В Excel 2007 и новее - откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)
Выберите объект Кнопка (Button) :
Затем нарисуйте кнопку на листе, удерживая левую кнопку мыши. Автоматически появится окно, где нужно выбрать макрос, который должен запускаться при щелчке по нарисованной кнопке.
Создание пользовательских функций на VBA
Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция - только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).
Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции:
Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка - Функция) в категории Определенные пользователем (User Defined) :
После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:
Как известно, для полноценной работы с данными (фильтрации, сортировки, подведения итогов и т.д.) нужен непрерывный список, т.е. таблица без разрывов (пустых строк и ячеек - по возможности). На практике же часто мы имеем как раз таблицы с пропущенными пустыми ячейками - например после копирования результатов сводных таблиц или выгрузок в Excel из внешних программ. Таким образом, возникает необходимость заполнить пустые ячейки таблицы значениями из верхних ячеек, то бишь.
из сделать В общем случае, может возникнуть необходимость делать такое заполнение не только вниз, но и вверх, вправо и т.д. Давайте рассмотрим несколько способов реализовать такое.
Способ 1. Без макросов
Выделяем диапазон ячеек в первом столбце, который надо заполнить (в нашем примере, это A1:A12).
Нажимаем клавишу F5 и затем кнопку Выделить (Special) и в появившемся окне выбираем Выделить пустые ячейки (Blanks) :
Не снимая выделения, вводим в первую ячейку знак "равно" и щелкаем по предыдущей ячейке или жмём стрелку вверх (т.е. создаем ссылку на предыдущую ячейку, другими словами):
И, наконец, чтобы ввести эту формулу сразу во все выделенные (пустые) ячейки нажимаем Ctrl + Enter вместо обычного Enter . И все! Просто и красиво.
В качестве завершающего мазка я советовал бы заменить все созданные формулы на значения, ибо при сортировке или добавлении/удалении строк корректность формул может быть нарушена. Выделите все ячейки в первом столбце, скопируйте и тут же вставьте обратно с помощью Специальной вставки (Paste Special) в контекстом меню, выбрав параметр Значения (Values) . Так будет совсем хорошо.
Способ 2. Заполнение пустых ячеек макросом
Если подобную операцию вам приходится делать часто, то имеем смысл сделать для неё отдельный макрос, чтобы не повторять всю вышеперечисленную цепочку действий вручную. Для этого жмём Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , чтобы открыть редактор VBA, затем вставляем туда новый пустой модуль через меню Insert - Module и копируем или вводим туда вот такой короткий код:
Как легко можно сообразить, этот макрос проходит в цикле по всем выделенным ячейкам и, если они не пустые, заполняет их значениями из предыдущей ячейки.
Для удобства, можно назначить этому макросу сочетание клавиш или даже поместить его в Личную Книгу Макросов (Personal Macro Workbook), чтобы этот макрос был доступен при работе в любом вашем файле Excel.
Способ 3. Power Query
Power Query - это очень мощная бесплатная надстройка для Excel от Microsoft, которая может делать с данными почти всё, что угодно - в том числе, легко может решить и нашу задачу по заполнению пустых ячеек в таблице. У этого способа два основных преимущества:
- Если данных много, то ручной способ с формулами или макросы могут заметно тормозить. Power Query сделает всё гораздо шустрее.
- При изменении исходных данных достаточно будет просто обновить запрос Power Query. В случае использования первых двух способов - всё делать заново.
Для загрузки нашего диапазона с данными в Power Query ему нужно либо дать имя (через вкладку Формулы - Диспетчер имен), либо превратить в "умную" таблицу командой Главная - Форматировать как таблицу (Home - Format as Table ) или сочетанием клавиш Ctrl + T :
После этого на вкладке Данные (Data) нажмем на кнопку Из таблицы / диапазона (From Table/Range) . Если у вас Excel 2010-2013 и Power Query установлена как отдельная надстройка, то вкладка будет называться, соответственно, Power Query.
В открывшемся редакторе запросов выделим столбец (или несколько столбцов, удерживая Ctrl ) и на вкладке Преобразование выберем команду Заполнить - Заполнить вниз (Transform - Fill - Fill Down) :
Вот и всё :) Осталось готовую таблицу выгрузить обратно на лист Excel командой Главная - Закрыть и загрузить - Закрыть и загрузить в. (Home - Close&Load - Close&Load to. )
В дальнейшем, при изменении исходной таблицы, можно просто обновлять запрос правой кнопкой мыши или на вкладке Данные - Обновить всё (Data - Refresh All) .
Вы когда-нибудь пробовали преобразовать нулевые ячейки в пустые в Excel? Теперь я расскажу вам несколько быстрых способов пакетного преобразования нулевой ячейки в пустые в Excel.
Click Kutools > Insert > Fill Blank Cells. This Kutools for Excel's Fill Blank Cells utility can quickly fill all blank cells with value above or with a fixed value in selected range. See below screenshot:
Kutools for Excel includes more than 300 handy Excel tools. Free to try with no limitation in 60 days. Read More Download the free trial now
Преобразование нуля в пустой с помощью функции поиска и замены
Функция «Найти и заменить» очень полезна в Excel, вы можете использовать ее, чтобы сначала найти все нулевые ячейки, а затем заменить их пустыми.
1. Нажмите Ctrl + F для отображения Найти и заменить Диалог.
2. в Найти и заменить диалоговое окно, нажмите Замените вкладка и введите 0 в Найти то, что текстовое окно, пространство в Заменить диалоговое окно, затем щелкните Доступные опции развернуть диалог и проверить Соответствие всему содержимому ячейки. Смотрите скриншоты:
3. Затем нажмите Заменить все, и появится диалоговое окно, в котором сообщается, сколько ячеек было заменено. Смотрите скриншот:
4. Нажмите OK. И вы можете видеть, что нулевые ячейки были заменены пустыми.
5. Нажмите Закрыть кнопка для выхода из Найти и заменить Диалог.
Преобразование нуля в пустое с помощью VBA
Если вы знакомы с VBA, вы можете использовать приведенный ниже код VBA для преобразования нуля в пустую ячейку.
1. Нажмите Alt + F11 открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули , чтобы открыть окно модуля, затем скопируйте в окно следующий код VBA.
VBA: преобразовать нулевые ячейки в пустые.
3. Нажмите Run или F5 клавишу на клавиатуре, чтобы запустить этот код, и KutoolsforExcel Появится диалоговое окно для выбора диапазона для замены нулевых ячеек. Смотрите скриншот:
4. Нажмите OK, и все нулевые ячейки в выделенном фрагменте преобразуются в пустые ячейки.
Преобразование нуля в пустое с помощью Kutools for Excel
Выбрать определенные ячейки полезности Kutools for Excel может помочь вам выбрать все ячейки с нулем в выбранном диапазоне. Выделив все ячейки с нулем, вы можете удалить их, нажав клавишу Delete. Пожалуйста, сделайте следующее.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Выберите диапазон с нулевыми ячейками, который вы хотите преобразовать в пустые. А затем нажмите Кутулс > Выберите > Выбрать определенные ячейки. Смотрите скриншот:
2. в Выбрать определенные ячейки диалоговое окно, выберите Ячейка в Тип выбора раздел, а затем выберите Равно из раскрывающегося списка в Конкретный тип раздел, введите 0 в следующее поле. Наконец нажмите кнопку OK кнопка. Смотрите скриншот:
3. После этого сразу выбираются все ячейки с нулем, нажмите Удалить клавишу на клавиатуре, чтобы очистить все выделенные ячейки. Вы можете видеть, что все нули преобразованы в пустые, как показано на скриншоте ниже.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Если у вас есть диапазон значений, который заполнен некоторыми нулями, и теперь вы хотите преобразовать эти нули в тире в диапазоне данных. Как в Excel можно было сразу поменять все нули на тире?
- Преобразование нулей в тире с помощью функции форматирования ячеек
- Преобразование нулей в тире с функцией замены
- Преобразование нулей в тире с помощью удобного инструмента
Преобразование нулей в тире с помощью функции форматирования ячеек
В Excel Формат ячеек функция может помочь вам выполнить эту задачу.
1. Выберите диапазон данных, в котором вы хотите заменить нули на тире, щелкните правой кнопкой мыши и выберите Формат ячеек из контекстного меню см. снимок экрана:
2. В Формат ячеек диалоговое окно под Число вкладку нажмите На заказ из Категория список и введите 0; -0; -; @ в Тип текстовое окно. Смотрите скриншот:
3, Затем нажмите OK, все нули заменены тире в исходном диапазоне. Смотрите скриншот:
Легко выделяйте все нули с помощью замечательного инструмента, а затем конвертируйте их сразу в тире
С крутым Выбрать определенные ячейки особенность Kutools for Excel, вы можете легко выбрать все ячейки, равные заданному числу в Excel, например, все ячейки, равные 0. После выбора этих нулевых ячеек вы можете массово преобразовать их в тире с помощью клавиш Ctrl + Enter. Полнофункциональная бесплатная 30-дневная пробная версия!
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
Преобразование нулей в тире с функцией замены
Вы также можете применить функцию «Заменить», чтобы полностью преобразовать все нули в тире.
1. Нажмите Главная > Найти и выбрать > Замените для включения диалогового окна "Найти и заменить".
Заметки:
(1) Чтобы преобразовать нули в тире в определенном выделении, сначала выберите диапазон, а затем включите диалоговое окно «Найти и заменить»;
(2) Вы также можете нажать Ctrl + H вместе, чтобы открыть диалоговое окно «Найти и заменить».2. В диалоговом окне «Найти и заменить» сделайте следующее:
(1) Тип 0 в Найти то, что коробка;
(2) Введите тире – в Заменить коробка;
(3) Нажмите Опции >> кнопку, чтобы развернуть дополнительные параметры замены, и проверьте Соответствие всему содержимому ячейки вариант;3, Нажмите Заменить все кнопку.
4. Затем появляется диалоговое окно, в котором показано, сколько замен было выполнено. Щелкните значок OK чтобы закрыть его.
И тогда вы увидите, что все нули на всем листе (или в указанном диапазоне, если вы выбрали) были преобразованы в тире.
Преобразование нулей в тире с помощью Kutools for Excel
Если вы установили Kutools for Excel, Его Выбрать определенные ячейки Функция может помочь вам сначала выбрать все ячейки с нулями, а затем сразу преобразовать все нули в тире.
Kutools for Excel- Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 60-дневная пробная версия, кредитная карта не требуется! Get It Now
1. Выберите диапазон, в котором вы хотите преобразовать нули в тире, и нажмите Кутулс > Выберите > Выбрать определенные ячейки, см. снимок экрана:
2. В Выбрать определенные ячейки диалоговое окно, нажмите Ячейка вариант, выберите Равно из Конкретный тип выпадающий список, введите 0 в текстовое поле и щелкните Ok кнопка. Смотрите скриншот:
3. Теперь все нули выделены. Затем введите символ - тире в строке формул и нажмите Ctrl + Enter ключи вместе. Затем все нули были преобразованы в тире, см. Снимок экрана:
Демонстрация: преобразование нулей в тире в Excel
Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Бесплатная пробная версия сейчас! Купить!
Статьи по теме:
Преобразовать ноль в пустой в выбранном диапазоне в Excel
Используйте функцию «Найти и заменить», VBA и отличный сторонний инструмент, чтобы преобразовать нули в пустые при выделении.Отображать пусто, если в Excel сумма равна нулю
Если вычисление суммы возвращает 0, покажите результат вычисления пустым в Excel. Два решения для устранения этой проблемы: форматирование ячеек или непосредственное изменение формулы суммы.Скрыть ноль на оси диаграммы в Excel
Как правило, ось диаграммы в большинстве случаев начинается с 0. Однако иногда 0 не требуется, и вы можете скрыть его от оси диаграммы.Удалите все нули после десятичной дроби в Excel
При использовании функции увеличения десятичного числа для массового изменения десятичных разрядов нескольких ячеек к целым числам будут добавлены нули. Теперь в этой статье представлены два решения для удаления этих нулей после десятичной точки.Формулы
Старинная к
Конечно, вы можете перетащить маркер заливки чтобы преобразовать другие ошибки формулы в числа по диапазонам. Однако этих цифр слишком много, чтобы их можно было запомнить и применить.
Замените все значения ошибок в выбранном диапазоне пустым, нулевым или определенным текстом в Excel:
Шаг 1: Выберите диапазон, с которым вы будете работать.
Шаг 2: Нажмите F5 , чтобы открыть Перейти к диалоговое окно.
Шаг 3: Нажмите Особый кнопку, и он открывает Перейти к специальному диалоговое окно.
Шаг 4: В Перейти к специальному диалоговое окно, только отметьте Формула вариант и ошибки вариант, см. снимок экрана:
Шаг 6: Теперь просто введите 0 или любое другое значение, необходимое для замены ошибок, и нажмите Ctrl + Enter ключи. Тогда вы получите, что все выбранные ячейки ошибок заполнены 0.
Конечно, вы можете удалить все ячейки с ошибками, нажав клавишу Delete, оставив пустые ячейки.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1: Выберите диапазон со значениями ошибок, которые вы хотите заменить на ноль, пробел или текст, как вам нужно, затем cоблизывание Кутулс > Еще > Мастер условий ошибки. Смотрите скриншот:
2. В Мастер условий ошибки диалоговое окно, сделайте следующее:
(2) В Отображение ошибки раздел, если вы хотите заменить все значения ошибок пробелами, проверьте Ничего (пустая ячейка) опцию.
(3) Щелкните значок OK кнопку.
И тогда вы можете увидеть, что все значения ошибок в выбранном диапазоне заменяются пробелами, нулями или определенным текстом, как вы сразу указали выше. Смотрите скриншоты:
Замените все значения ошибок пустыми
Замените все значения ошибок на ноль
Замените все значения ошибок определенным текстом
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Читайте также: