Нулевые значения excel макрос

Содержание

  1. Функция IsNull
  2. Синтаксис
  3. Замечания
  4. Пример
  5. См. также
  6. Поддержка и обратная связь
  7. Как в ячейке с формулой вместо ошибки показать 0
  8. Vba excel нулевые значения
  9. Excel если ноль то пусто
  10. Скрытие значений в MS EXCEL равных 0
  11. Пользовательский формат
  12. Условное форматирование
  13. Значение Пустой текст («»)
  14. Функция ЕПУСТО() в MS EXCEL
  15. Использование функции
  16. Проверка диапазона ячеек
  17. Как заменить в Excel отрицательное число на ноль.
  18. как настроить общий формат ячейки отображть «пусто» вместо «0»
  19. При отсутствии значения в формуле — делать пусто (Формулы/Formulas)
  20. Ноль в пустой на вид ячейке (Формулы/Formulas)
  21. Формула: если ячейкая пустая, то подставить туда.. (Формулы/Formulas)
  22. Если в ячейки пусто то брать значение из ячейки выше.
  23. Как написать формулу Excel Эксель с условиями: если в ячейке число больше нуля то текст Долг, если ноль то текст Оплачено

Функция IsNull

Возвращает значение типа Boolean, которое указывает, не содержит ли выражение достоверных данных (Null).

Синтаксис

IsNull(выражение)

Замечания

IsNull возвращает значение True (Истина), если используется expression равное Null; в другом случае IsNull возвращает значение False (Ложь). Если expression состоит из нескольких переменных, значение Null, заданное для одной из них, приводит к возврату значения True для всего выражения.

Значение Null указывает, что Variant не содержит достоверных значений. Null не приравнивается к значению Empty (Пусто), которое указывает, что переменная не была инициализирована. Это также не то же самое, что строка нулевой длины («»), которую иногда называют пустой строкой.

Используйте функцию IsNull, чтобы определить, содержит ли выражение значение Null. Выражения, для которых может потребоваться значение True , в некоторых случаях, например If Var = Null и If Var <> Null , всегда имеют значение False. Это связано с тем, что любое выражение, содержащее значение NULL , само по себе имеет значение NULL и , следовательно, false.

Пример

В этом примере используется функция IsNull, чтобы определить, содержит ли переменная значение Null.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Как в ячейке с формулой вместо ошибки показать 0

Случаются ситуации, когда в рабочей книге на листах создано много формул, выполняющих различные задачи. При этом формулы созданы когда-то давно, возможно даже на вами. И формулы возвращают ошибки. Например #ДЕЛ/0! (#DIV/0!) . Эта ошибка возникает, если внутри формулы происходит деление на ноль: = A1 / B1 , где в B1 ноль или пусто. Но могут быть и другие ошибки(#Н/Д, #ЗНАЧ! и т.д.). Можно изменить формулу, добавив проверку на ошибку:
=ЕСЛИ(ЕОШ( A1 / B1 );0; A1 / B1 )
=IF(ISERR( A1 / B1 ),0, A1 / B1 )
аргументы:
=ЕСЛИ(ЕОШ(1 аргумент);2 аргумент; 1 аргумент)
Эти формулы будут работать в любой версии Excel. Правда, функция ЕОШ не обработает ошибку #Н/Д (#N/A) . Чтобы так же обработать и #Н/Д необходимо использовать функцию ЕОШИБКА:
=ЕСЛИ(ЕОШИБКА( A1 / B1 );0; A1 / B1 )
=IF(ISERROR( A1 / B1 ),0, A1 / B1 )
Однако далее по тексту я буду применять ЕОШ(т.к. она короче) и к тому же не всегда надо «не видеть» ошибки #Н/Д.
Но для версий Excel 2007 и выше можно применить чуть более оптимизированную функцию ЕСЛИОШИБКА (IFERROR) :
=ЕСЛИОШИБКА( A1 / B1 ;0)
=IFERROR( A1 / B1 ,0)
аргументы:
=ЕСЛИОШИБКА(1 аргумент; 2 аргумент)

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

Почему ЕСЛИОШИБКА лучше и я называю её более оптимизированной? Разберем первую формулу подробнее:
=ЕСЛИ(ЕОШ( A1 / B1 );0; A1 / B1 )
Если вычислить пошагово, то увидим, что сначала происходит вычисление выражения A1 / B1 (т.е. деление). И если его результат ошибка – то ЕОШ вернет ИСТИНА (TRUE) , которое будет передано в ЕСЛИ (IF) . И тогда функцией ЕСЛИ(IF) будет возвращено значение из второго аргумента 0.
Но если результат не является ошибочным и ЕОШ (ISERR) возвращает ЛОЖЬ (FALSE) – то функция заново будет вычислять уже вычисленное ранее выражение: A1 / B1
С приведенной формулой это особой роли не играет. Но если применяется формула вроде ВПР (VLOOKUP) с просмотром на несколько тысяч строк – то вычисление два раза может значительно увеличить время пересчета формул.
Функция же ЕСЛИОШИБКА (IFERROR) один раз вычисляет выражение, запоминает его результат и если он ошибочен возвращает записанное вторым аргументом. Если же ошибки нет, то возвращает запомненный результат вычисления выражения из первого аргумента. Т.е. вычисление по факту происходит один раз, что практически не будет влиять на скорость общего пересчета формул.
Поэтому если у вас Excel 2007 и выше и файл не будет использоваться в более ранних версиях – то имеет смысл использовать именно ЕСЛИОШИБКА (IFERROR) .

Для чего формулы с ошибками вообще исправлять? Обычно делается для более эстетичного отображения данных в отчетах, особенно если отчеты потом руководству отправляют.

Итак, есть на листе такие формулы, ошибки которых надо обработать. Если подобных формул для исправления одна-две(да даже 10-15) – то проблем почти нет заменить вручную. Но если таких формул несколько десятков, а то и сотен – проблема приобретает почти вселенские масштабы :-). Однако процесс можно упростить через написание относительно простого кода Visual Basic for Application.
Для всех версий Excel:

Sub IfIsErrNull() Const sToReturnVal As String = «0» ‘если необходимо вместо нуля возвращать пусто ‘Const sToReturnVal As String = «»»»»» Dim rr As Range, rc As Range Dim s As String, ss As String On Error Resume Next Set rr = Intersect(Selection, ActiveSheet.UsedRange) If rr Is Nothing Then MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www.excel-vba.ru» Exit Sub End If For Each rc In rr If rc.HasFormula Then s = rc.Formula s = Mid(s, 2) ss = «=» & «IF(ISERR(» & s & «),» & sToReturnVal & «,» & s & «)» If Left(s, 9) <> «IF(ISERR(» Then If rc.HasArray Then rc.FormulaArray = ss Else rc.Formula = ss End If If Err.Number Then ss = rc.Address rc.Select Exit For End If End If End If Next rc If Err.Number Then MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _ Err.Description, vbInformation, «www.excel-vba.ru» Else MsgBox «Формулы обработаны», vbInformation, «www.excel-vba.ru» End If End Sub

Для версий 2007 и выше

Sub IfErrorNull() Const sToReturnVal As String = «0» ‘если необходимо вместо нуля возвращать пусто ‘Const sToReturnVal As String = «»»»»» Dim rr As Range, rc As Range Dim s As String, ss As String On Error Resume Next Set rr = Intersect(Selection, ActiveSheet.UsedRange) If rr Is Nothing Then MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www.excel-vba.ru» Exit Sub End If For Each rc In rr If rc.HasFormula Then s = rc.Formula s = Mid(s, 2) ss = «=» & «IFERROR(» & s & «,» & sToReturnVal & «)» If Left(s, 8) <> «IFERROR(» Then If rc.HasArray Then rc.FormulaArray = ss Else rc.Formula = ss End If If Err.Number Then ss = rc.Address rc.Select Exit For End If End If End If Next rc If Err.Number Then MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _ Err.Description, vbInformation, «www.excel-vba.ru» Else MsgBox «Формулы обработаны», vbInformation, «www.excel-vba.ru» End If End Sub

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

Копируете приведенный код, переходите в редактор VBA(Alt+F11), создаете стандартный модуль(InsertModule) и просто вставляете в него этот код. Переходите в нужную книгу Excel и выделяете все ячейки, формулы в которых необходимо преобразовать таким образом, чтобы в случае ошибки они возвращали ноль. Жмете Alt + F8 , выбираете код IfIsErrNull(или IfErrorNull, в зависимости от того, какой именно скопировали) и жмете Выполнить.
Ко всем формулам в выделенных ячейках будет добавлена функция обработки ошибки. Приведенные коды учитывают так же:
-если в формуле уже применена функция ЕСЛИОШИБКА или ЕСЛИ(ЕОШ, то такая формула не обрабатывается;
-код корректно обработает так же функции массива;
-выделять можно несмежные ячейки(через Ctrl ).
В чем недостаток: сложные и длинные формулы массива могут вызвать ошибку кода, в связи с особенностью данных формул и их обработкой из VBA. В таком случае код напишет о невозможности продолжить работу и выделит проблемную ячейку. Поэтому настоятельно рекомендую производить замены на копиях файлов.
Если значение ошибки надо заменить на пусто, а не на ноль, то надо строку

Const sToReturnVal As String = «0»

Удалить, а перед строкой

‘Const sToReturnVal As String = «»»»»»

Удалить апостроф ( )

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

И небольшое дополнение: старайтесь применять код вдумчиво. Не всегда возврат ошибки мешает. Например, при использовании ВПР иногда полезно видеть какие значения не были найдены.
Так же хочу отметить, что применять надо к реально работающим формулам. Потому как если формула возвращает #ИМЯ! (#NAME!) , то это означает, что в формуле неверно записан какой-то аргумент и это ошибка записи формулы, а не ошибка результата вычисления. Такие формулы лучше проанализировать и найти ошибку, чтобы избежать логических ошибок расчетов на листе.

Статья помогла? Поделись ссылкой с друзьями!

Источник

Vba excel нулевые значения

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

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

2. Нажмите Вставить > Модули , чтобы открыть окно модуля, затем скопируйте в окно следующий код VBA.

VBA: преобразовать нулевые ячейки в пустые.

3. Нажмите Run или F5 клавишу на клавиатуре, чтобы запустить этот код, и KutoolsforExcel Появится диалоговое окно для выбора диапазона для замены нулевых ячеек. Смотрите скриншот:

4. Нажмите OK, и все нулевые ячейки в выделенном фрагменте преобразуются в пустые ячейки.

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

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

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

2. в Выбрать определенные ячейки диалоговое окно, выберите Ячейка в Тип выбора раздел, а затем выберите Равно из раскрывающегося списка в Конкретный тип раздел, введите 0 в следующее поле. Наконец нажмите кнопку OK кнопка. Смотрите скриншот:

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

Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Источник

Excel если ноль то пусто

Скрытие значений в MS EXCEL равных 0

​Смотрите также​Формулы, которые есть​Суть в том​

​ при деление и​ столбец?​ в первом сообщении​ число сохранено, как​ галка работает именно​ объяснить этот эффект?​: Если в исходной​ даст ли метод​: А если потом​Встретился с ситуацией,​Нажимаем «ОК». Получилась такая​

​отрицательное число​Значение​Теперь нулевые значения отображаются​Иногда требуется скрыть значения​ в таблице №​ что — внести​

Пользовательский формат

​ тд двух значений​56 сообщений . ​ пустышка​

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

​ формула =МАКС(A2-B2;0) Копируем​. Настроить таблицу не​- значением может​ белым шрифтом и​ равные 0. Сделаем​ 1​ данные — скопировать​

Условное форматирование

​ заставить формулу делать​Karataev​a = -​

  • ​ о смене типа​
  • ​Цитата​ более загадочное. Если​ значений могут быть​ другой машине.​
  • ​ лист в новую​ формата — «общий»​
  • ​ формулу вниз по​ отображать нули в​ быть все что​

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

​ расчет учитывая, что​: Если в ячейке​ в переменную a​ данных. Но тем​demoniqus, 26.01.2015 в​ в названных ячейках​ нули, то можно​GIG_ant​ книгу с сохранением​ — приравненные к​ столбцу. Результат получился​

Значение Пустой текст («»)

​ Excel можно функцией​ угодно: текст, число,​ стандартном белом фоне.​Скрыть значения равные 0​ 10 формула: =СУММ​ до и чтоб​ в одной из​​ «A1» пусто, то​​ подкладывается адрес и​ не менее, три​​ 10:25, в сообщении​​ значение хотя бы​ так​​: Для того что​​ значений ячеек и​ другим ячейкам при​​ такой.​​ условного форматирования, заменить​

Функция ЕПУСТО() в MS EXCEL

​ ссылка, имя, пустая​Если фон поменять, то​ во всех ячейках​ (I10:L10)​ всё правильно считала.​ ячеек может быть​ подставить текст «текст»,​​ вы итоге в​​ ячейки в данном​ № 3200?’200px’:»+(this.scrollHeight+5)+’px’);»>глюк ли​ в строке формул​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ((C3<>«»)*(B3<>«»);C3-B3;»»)​​ бы нули не​​ защищаю от изменений,​

​ отсутствии значения во​

​Этой функцией «МАКС»​​ ноль на тире,​

​ ячейка, значение ошибки,​​ нули станут снова​ на листе можно​В ячейке M​Daulet​ пусто и, следовательно,​ если не пусто,​

Использование функции

​ MsgBox a мы​ файле распознались, как​

​ это стороннего продукта​ показывается, то в​Desyatov​ отображались достаточно в​ у другого пользователя​

​ влияющей ячейке отображают​ можно выбрать наибольшую​ т.д. Смотрите статью​ логическое выражение.​

Проверка диапазона ячеек

​ видны, в отличие​ через Параметры MS​ 11 формула: =СУММ​: Вообще та число​ нужно указать, что​ то вставить данные​ видим 0​ содержащие некоторое значение,​ или какая-нибудь веселая​ R, R, R​: AlexM, да-да-да. Огромное спасибо. ​ макросе выполнить код:​ с включенной опцией​ это отсутствие по-разному:​ цифру в столбце​ «Как убрать нули​

​В файле примера приведены​ от варианта с​ EXCEL (далее нажмите​ (I11:L11)​ не делится на​

​ из ячейки «A1»:​Получается, что ячейки​ хотя обычными методами​ особенность Excel?Это не​ значение не выявляется​

Как заменить в Excel отрицательное число на ноль.

​>​ ячейки выше пока​китин​ на vbNullString и​ Если бы все​​ особенность Excel, это​ ​ формул. Тем не​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(И(C3<>«»;B3<>«»);C3-B3;»»)​​ это текущее активное​
​ или как «0»?​ При сравнении свойств​ самая большая в​ варианта,​ ячейке содержится число,​ фона ячейки. Даже​ листа/, затем снять​ (I12:L12)​ЕОШ(), ЕОШИБКА()​ ячейка выше не​: макрос​ поэтому при разборе​
​ пустые ячейки опознались​ просто так автор​ менее при разборе​demoniqus​ окно.​GIG_ant​ ячеек увидел, что​​ строке 2. В​как заменить в Excel​ текстовое значение, формула,​ если просто выделить​ галочку Показывать нули​

​В ячейке M​Владимир​ окажется со значением.​Sub Text()​ там обнаруживается 0. ​ с подобной «ошибкой»,​ сделал файл.​ листа через программный​: Столкнулся с неизвестными​GIG_ant​

​: а что вам​
​ у одних в​​ ячейку E2 пишем​​ отрицательное число на​ то функция вернет​ диапазон, то нулевые​ в ячейках, которые​ 13 формула: =СУММ​: =ЕСЛИ(ИЛИ(R2=0;S2=0);»»;ИНДЕКС($S$2:$S$53;ПОИСКПОЗ(9E+307;$S$2:S2))/R2)​И сделать решение​Dim tt&​ ​ Я правильно все​
​ можно было бы​А, понял, Вы​ продукт Infragistics в​ мне возможностями Excel​: Что бы четко​ мешает проверить и​

​ поле «Образец» стоит​ такую формулу =МАКС(A2:D2)​ ноль​ логическое значение ИСТИНА.​ ячейки будут слегка​ содержат нулевые значения).​
​ (I13:L13)​vikttur​ именно при помощи​tt = Cells(Rows.Count,​ понял?​ предполагать, что это​ спрашиваете про то,​ этих ячейках также​ и хотелось бы​

как настроить общий формат ячейки отображть «пусто» вместо «0»

​ задать лист в​​ если что то​
​ «пусто», у других​ Получилось.​.​2. Если проверяемая ячейка​ видны.​Скрыть значения равные 0​В ячейке N​: Разве без выбора​ формул исключая макросы.​ 1).End(xlUp).Row​RAN​ особенность работы стороннего​ почему пустая ячейка​ обнаруживается значение 0.​ спросить у людей,​ котором необходимо убрать​
​ не понравится тем​ = «0».​Второй вариант.​Первый вариант.​ пуста, то функция​Замечательным свойством значения Пустой​ в отдельных ячейках​ 10 формула: =ЕСЛИ​

​ не то же​​Я уже мозг​For i =​

​: Нет.​​ продукта или ошибка​
​ показывается как ноль?​
​ Очень любопытно узнать,​
​ что это такое.​ нули пишем так:​
​ же макросом настроить​

​А можно ли​Нам пригодится​

​Функция «МАКС» в Excel.​​ также вернет логическое​ текст является, то​ можно используя пользовательский​ (B10<>«»;ОКРУГЛ ((0&H10)(0&M10);2);»»)​ самое?​ сломал, мне это​ 1 To tt​vbNullstring — текстовая​ в его работе.​ А разве в​ в чем дело?))))​ В приложении первый​

​Workbooks(«ИмяКниги»).Worksheets(«ИмяЛиста»).Activate​​ так как вам​ сделать так, чтобы​функция «ЕСЛИ» в Excel​Если нужно, преобразовать​ значение ЛОЖЬ.​ что оно не​ формат, Условное форматирование​В ячейке N​=ЕСЛИ(ИЛИ(R2=0;S2=0);»»;S2/R2)​ не под силу.​If Range(«A» &​

​ строка нулевой длины,​​ Но увы, такого​ других файла у​_Boroda_​ попавшийся из сети​ActiveWindow.DisplayZeros = False​ необходимо ?​ везде при пустом​

​. Эта функция находится​​ отрицательное число в​Функция ЕПУСТО() проверяет содержимое​ отображается в ячейке​ или значение Пустой​ 11 формула: =H11-M11​Guest​Пример прикладываю.​ i).Value = «»​ что и видно​ не наблюдается, из​ Вас иначе?​: Файл — Парамерты​ бланк бухгалтерской отчетности.​Зверек​Зверек​ значении отображалось «пусто»​ на закладке «Формулы»,​ ноль, нужно воспользоваться​ только одной ячейки.​ (например, введите формулу​
​ текст («»).​В ячейке N​: Владимир, огромное спасибо!​Guest​ Then Range(«A» &​ в первом MsgBox.​ чего я делаю​Я что-то на​ — Дополнительно -​Если навести курсор​
​: Спасибо Вам огромное. ​: Видите ли, вообще​ и не было​ в разделе «Библиотека​

​ функцией «МАКС». У​​ Чтобы подсчитать количество​ =»»). Записав, например,​Пользовательский формат вводим через​ 12 формула: =H12-M12​
​От такого головняка​

​: Так пойдет?​ i) = [d1]​a& — число​

​ вывод — данные​​ название темы внимание​ снята галка «Показывать​ на R, R​Desyatov​

​ я не нашел​
​ бы нужды убирать​

​ функций» выбираем –​​ нас такая таблица.​

При отсутствии значения в формуле — делать пусто (Формулы/Formulas)

​ пустых ячеек в​​ в ячейке​ диалоговое окно Формат​
​В ячейке N​ избавили!​
​Михаил С.​Next​ типа Long​ ячейки оформлены неизвестным​ не обратил -​ нули в ячейках,​ , R, R,​

​: Доброго времени суток​​ расположение этой опции​ нули формулами типа​ «Логические». Или просто​

​Здесь из первого​​ диапазоне, то используйте​B1​
​ ячеек.​ 13 формула: =H13-M13​RTE​
​: =ВПР(9^9;$D$1:D1;1)/E1​

​End Sub​​При преобразовании текста​ для меня способом.​ безобразничаю с утра,​

​ содержащих нулевые значения»​​ то в строке​

​ всем. ​​ в excel 2007,​ =ЕСЛИ(AE5=0;»»;AE5)?​ пишем такую формулу​ столбца А вычислили​ функцию СЧИТАТЬПУСТОТЫ(), но​
​формулу =ЕСЛИ(A1;A1;»») получим​

​для вызова окна Формат​​Формулы, которые нужны​

​: Владимир, ещё раз​​Владимир​
​_Boroda_​

Ноль в пустой на вид ячейке (Формулы/Formulas)

​ vbNullstring в число​​Для _Boroda_ -​ не проснулся еще,​Но только все​ формул отобразится значение​У меня такая​ поэтому включить-отключить-проверить не​Guest​ в ячейке D2.​
​ второй столбец В.​ если ячейки содержат​ пустую ячейку​ ячеек нажмите​ для таблицы №​ спасибо!​: =индекс(d1:d7;поискпоз(9e+307;d1:d7))/e1​: Выделяете столбец -​ получаем 0. Что​ я понимаю, что​ наверное.​ хитро — галка​ 0, хотя в​ проблемка:​ так просто, как​: Параметры Прикрепленные файлы​ =ЕСЛИ(A2-B2​ Теперь нам нужно,​ значение Пустой текст​В1​CTRL+1​ 2​Пример на 2-ох рисунках​и всё это​ F5 — Выделить​ и видно во​ название темы ни​Дмитрий, у Вас​ снята в тот​ самой ячейке значение​Не получается сделать​ хотелось бы. Также​
​ post_262084.JPG (88.19 КБ)​Третий вариант.​ чтобы в таблице​ («»), то функция​в случае, если​;​2 Вопрос: Как​ ниже​ закрепить баксами.​ — Пустые -​ втором MsgBox.​ о чем, но​ название темы ни​ момент, когда в​ не видно. Первое,​ так, чтобы не​ в случае неудачи​

​AKSENOV048​​В новом столбце​Excel​ СЧИТАТЬПУСТОТЫ() будет подсчитывать​ в​выберите (все форматы).​
​ написать формулы для​1 -ая Формула,​———​ пишете слово «Текст»​Не подкладывается​ не смог придумать,​ о чем. Поменяйте​ ячейках стоял формат​ что я предположил​ отображались значения в​ я не смогу​: а вот еще​

​ пишем формулу. В​​вместо отрицательных чисел стоял​ также и эти​
​А1​в поле Тип введите​ таблицы № 2​ которая нужна для​74411​ — жмете Контрл+Ентер​

​адрес, а записывается​​ как назвать то,​ согласно Правилам форума.​ «Общий» (или «Числовой»,​ — обычная «магия»​ ячейках (куда задана​ написать макрос, лихо​макрос:​
​ примере мы напишем​​ нуль​ ячейки наряду с​находится значение =0.​ формат # ##0,00;-# ##0,00;​ Должники с условием,​ таблицы № 1​RTE​AdwordsDirect​ значение ячейки.​ чего не знаю))))))))​
​demoniqus​ или любой ,​ типа цвета шрифта,​ формула), при отсутствии​ меняющий формат так,​Sub zero_off()​ формулу в ячейке​
​.​ действительно пустыми. Об​ Столбец​Применение вышеуказанного формата не​ что из таблицы​ для столбца O:​
​: Спасибо всем, формулы​: Пора учиться визуализировать.​demoniqus​RAN​

​: >>А разве в​​ кроме «Текстового»), потом​ совпадающего с фоном.​ одного из значений​
​ как надо. Мне​Columns(«A:B»).Replace What:=»0″, Replacement:=»»,​ F2. =(C2>0)*C2 Результат​В новом столбце​ этом читайте в​А​ влияет на вычисления.​ № 1 Оплата,​1 условие для​ работают. ВПР особенно​Цитата​
​: >>Не подкладывается lol​: А ларчик просто​ других файла у​ были поставлены нули,​ Не угадал. Формат​ используемой формулы.​ придется вручную с​ LookAt:=xlWhole​ такой.​ (у нас в​ статье Подсчет пустых​можно скрыть.​ В Строке формул,​ в эту таблицу​ формулы: Если ячейка​ подошла.​_Boroda_, 07.04.2017 в​ адрес, а записывается​ открывался.​ Вас иначе?​ а ПОТОМ уже​ ячеек тоже здесь​AlexM​ помощью формул менять​End Sub​Как сложить только​ примере, в столбце​ ячеек.​Задача функции ЕПУСТО(), английский​ по-прежнему, будет отображаться​
​ № 2 «втягиваются»​ В 10 (Фамилия​Но есть вопрос:​ 11:21, в сообщении​ значение ячейки.​demoniqus​При автоматизированном разборе​

​ был поставлен формат​​ не при чем​: Можно проверять функцией​

​ нужные ячейки с​​или ctrl+1 (все​ отрицательные, или только​
​ D) пишем формулу.​Чтобы ответить на вопрос​ вариант ISBLANK(), -​
​ 0, хотя в​ только должники из​ И. О.) пустая,​ Есть пять тысяч​
​ № 5 ()​Я ж говорю,​: RAN, я не​ этого конкретного файла​
​ «Текстовый»​ — установлен текстовый​ ЕСЛИ() наличие всех​ «0» на «пусто»​ форматы) Тип: 0;-0;;@​
​ положительные числа, смотрите​ На закладке «Формулы»​ «Есть ли хотя​ проверять есть ли​ ячейке ничего не​ таблицы № 1.​
​ то ячейка столбца​ записей и если​ Выделяете столбец -​ что в VB​ силен в VB. ))))​ бОльшая часть ячеек​demoniqus​

​ формат. От значения​​ значений.​
​ (их у меня​слэн​ в статье «Сумма​ в разделе «Библиотека​
​ бы 1 пустая​ в ячейке число,​
​ будет отображаться.​ То есть те,​ О тоже пустая.​ попытаться протянуть или​ F5 — Выделить​
​ не шарю))) А​​Если я правильно​ воспринимается именно так,​

​: С первой частью​​ тоже зависимости нет​shurikus​ много, все с​
​: нет. формат ячейки​ отрицательных чисел в​ функций» выбираем «Другие​ ячейка в B6:B11?»​ текстовое значение, формула​Используя Условное форматирование, также​

Формула: если ячейкая пустая, то подставить туда.. (Формулы/Formulas)

​ у кого​​2 условие: Если​
​ скопировать любую из​ — Пустые -​ здесь банальное преобразование​
​ представляю, то все​ как их видит​ понятно. ​

​ — если попытаться​​: Согласно правилам, нужно​ разными форматами, проверками​
​ влияет только на​

​ Excel» здесь.​​ функции». Затем выбираем​ используйте формулу массива​ или нет. Если​ можно добиться практически​в таблице №​ в ячейке столбца​
​ предложенных формул дальше-вниз​

​ пишете слово «Текст»​​ типа и его​
​ работает так:​
​ реальный пользователь -​
​А вот со​ прописать любое новое​
​ прикладывать файл пример.​ и пр.).​
​ отображение значения, а​Иногда, для автоматического​ функции «Статистические» и​=ЕСЛИ(СУММ(—ЕПУСТО(B6:B11));ИСТИНА)​
​ в ячейке​
​ такого же результата.​

​ 1 в графе​​ N (Сумма долга)​ то появляется проблема.​ — жмете Контрл+Ентер​ представления​Dim a& -​

​ совершенно пустые. Другие​​ второй — как​
​ значение (включая, если​​Без файла можно​Это бессилие и​ формулы работают с​ составления отчета, нужно​ нажимаем на функцию​Чтобы ответить на вопрос​А1​выделите интересующий диапазон;​
​ N (Сумма долга)​

​ число больше 0​​ Пример тот же​Спасибо, помогло.​AdwordsDirect​ выделяет переменную a​ файлы, которые я​

Если в ячейки пусто то брать значение из ячейки выше.

​ понять, глюк ли​​ заново написать ноль),​

​ только гадать. Попробуйте​ привело меня на​ самими значениями, независимо​ записать отрицательное число​ «МАКС». Появилось диалоговое​ «Есть ли хотя​имеется значение 555,​в меню выберите Главная/​ число больше 0​ (нуля), то в​ вложил с вашими​китин​: Добрый день,​ под хранение адреса​

​ делал своими руками,​ это стороннего продукта​ то «магия» бесследно​
​ так:​ форум в надежде,​ от формата. просто​
​ не с минусом,​

​ окно. Заполняем его.​​ бы 1 заполненная​

​ то формула =ЕПУСТО(А1)​​ Стили/ Условное форматирование/​

​ (нуля), и в​​ ячейке столбца О​

​ тремя вариантами.​: пора учиться задавать​

​нужна очень формула,​
​ [другой переменной]​

​ не создавали подобного​​ или какая-нибудь веселая​ исчезает. На условное​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(Ваша формула;»»)​
​ что есть менее​ если формула подразумевает​ а в скобках.​В строке «Число​ ячейка в B6:B11?»​ вернет ЛОЖЬ, а​ Правила выделения ячеек/​ ячейке столбца О​ текст: Долг​Протягивать или копировать​

​ правильные вопросы, если​ которая бы решила​
​= vbNullString -​ эффекта.​ особенность Excel?​
​ форматирование тоже не​Desyatov​

​ трудозатратный метод, чем​ арифметическое действие со​ Как это сделать,​ 1» пишем формулу​ используйте формулу массива​ если ячейка​

​ Равно);​​ текст: Долг​3 условие: Если​ эти формулы бесполезно?​
​ хотите получать правильные​
​ задачу.​

​ присвоение null-значения. Переменная​​С нулевыми ячейками​

​_Boroda_​​ похоже. ведь устанавливая​: shurikus, не знаю​ прописывание кучи формул​

​ значением, то оно​

​ читайте в статье​​ расчета. В строке​
​=НЕ(ЕПУСТО(B6:B11))​А1​

​в левом поле введите​​Полосатый жираф алик​ в ячейке столбца​

Как написать формулу Excel Эксель с условиями: если в ячейке число больше нуля то текст Долг, если ноль то текст Оплачено

​С делением на​ ответы без лишних​

​В пустые ячейки​ задана, как массив​ разобрались. Насчет нуля​: Потому, что ноль​
​ заново 0, я​ почему-то свалился файл(((при​ вручную. Пока таким​ преобразовывается в ноль,​ «Отрицательные числа Excel​ «число 2» пишем​
​Можно​пуста, то ИСТИНА.​ 0;​: Отвечать? Тебе? Ты​ N (Сумма долга)​ ноль как -то​ доп. вопросов​
​ столбца подставляла бы​ судя по всему.​ в текстовом формате​ в текстовом формате​ по сути ничего​ загрузке. Добавил)))​

​ оказался вариант, предложенный​ если текстовое, то​ в скобках».​
​ число, меньше которого​в Excel заменить цифру,​Синтаксис функции ЕПУСТО()​
​в правом поле выберите​ же не закрываешь​ 0.00 то в​
​ можно справится?​RTE​ «текст».​
​MsgBox — выводит​ — действительно появлялся​ — это не​

​ не изменяю, а​AlexM​ AKSENOV048 с заменой​
​ в «»​Зверек​
​ не показывать в​ значение на ноль,​
​ЕПУСТОзначение​ пользовательский формат (белый​

​ свои вопросы! А​ ячейке столбца О​Или придется править​
​: Приветствую!​китин​ непосредственно null-значение в​ зеленый маркер, предупреждающий​ число 0, а​ потому форматирование должно​: так?​ типа формата.​Зверек​: День добрый!​ таблице. Получилось так.​в т.ч.​
​)​ цвет шрифта);​ почему? Лень!​ текст: Оплачено​ вручную формулы?​Подскажите, пожалуйста, как​: и где этот​

​ message и поэтому​​ о том, что​ текст «0». А​ сохраняться. Может кто-нибудь​Pelena​

Источник

 

dx48

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

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

#1

28.08.2014 11:49:33

Здравствуйте! Нашел макрос  который скрывает  строки.
Макрос скрывает  те строки в которых пустые ячейки в столбце F.
Уважаемые подскажите что нужно сделать что бы макрос работал не по условию пустых ячеек а по условию нулевого  значения в ячейках.

Код
Dim cell As Range: Application.ScreenUpdating = False
For Each cell In [F2:F25].Cells
If cell.Find("*", , xlValues, xlPart) Is Nothing Then
cell.EntireRow.Hidden = True
End If
Next cell
 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Используйте макрорекордер. (например, найти в диапазоне ячейку целиком с нулём)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Sanja

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

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

#3

28.08.2014 11:57:33

?

Код
..............................
If cell.Value = 0 Then 
..............................

Согласие есть продукт при полном непротивлении сторон.

 

dx48

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

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

Правда говоря я в excel  новичок. Если вас не затруднит не могли бы выложить полную версию переделанного кода для моего случая.

 

Sanja

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

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

#5

28.08.2014 12:14:14

.

Код
Dim cell As Range: Application.ScreenUpdating = False
For Each cell In [F2:F25].Cells
   If cell.Value = 0 Then cell.EntireRow.Hidden = True
Next cell 

Согласие есть продукт при полном непротивлении сторон.

 

V

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

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

#6

28.08.2014 12:16:45

Код
Dim cell As Range: Application.ScreenUpdating = False
For Each cell In [F2:F25]
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
End If
Next cell 

п.с. пустые тоже спрячет.

Изменено: V28.08.2014 12:20:00

 

SAS888

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

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

#7

28.08.2014 12:19:53

Можно сделать и вовсе не используя циклы. Например так:

Код
Sub Main()
    Dim x As Range
    Set x = GetRange([F2:F25], 0)
    If Not x Is Nothing Then x.EntireRow.Hidden = True
End Sub

Function GetRange(rng As Range, Item As String) As Range
    rng.Replace "", "/", xlWhole: rng.Replace Item, "", xlWhole
    On Error Resume Next: Set GetRange = rng.SpecialCells(xlCellTypeBlanks): On Error GoTo 0
    rng.Replace "", Item, xlWhole: rng.Replace "/", "", xlWhole
End Function

Функция «GetRange» получает 2 аргумента: диапазон и значение. Возвращает диапазон ячеек, содержащий данное значение.

Изменено: SAS88828.08.2014 12:21:24

Чем шире угол зрения, тем он тупее.

 

RAN

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

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

#8

28.08.2014 12:23:19

Цитата
dx48 пишет: Правда говоря я в excel новичок

Не правда. Обычный халявщик.

PS И не надо слать подобные ЛС. От этого вы не перестанете быть халявщиком.

Изменено: RAN28.08.2014 23:17:43

 

dx48

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

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

#9

28.08.2014 19:09:36

Цитата
V пишет: п.с. пустые тоже спрячет.

Подскажите а как сделать так что бы пустые не скрывало?

 

dx48

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

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

Sanja, Ваш код тоже скрывает пустые строки а нужно только с нулевым значением  

 

Юрий М

Модератор

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

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

#11

28.08.2014 19:28:10

Или добавить проверку на «не пусто» или попробовать вот так:

Код
If cell.Value = "0" Then
 
 

dx48

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

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

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

 

Юрий М

Модератор

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

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

#13

28.08.2014 19:51:48

Цитата
dx48 пишет: В ответе V эта строка прописана

Сравните его строку и мою…

 

dx48

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

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

Юрий М, Спасибо выручили!  

 

Алексей Волков

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

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

#15

05.10.2014 20:51:09

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

Код
Public Sub Delete_Row()
 
 Dim DR As Range, LastRow As Long, r As Long
 On Error Resume Next
 Set DR = Application.InputBox("Выделите диапазон, в котором необходимо удалить строки с нулевым значением:", _
"Выделите диапазон", Default:=ActiveCell.Address, Type:=8
 On Error GoTo 0
 If DR Is Nothing Then
     Exit Sub
 Else
     LastRow = DR.Rows.Count
     LastRow = LastRow + DR.Row - 1
     Application.ScreenUpdating = False
     For r = LastRow To DR.Row Step -1
        If Cells(r, DR.Column).Value = 0 Then Rows(r).Hidden = True       
     Next r
  End If
 
End Sub

Изменено: Алексей Волков05.10.2014 20:57:49

 

Юрий М

Модератор

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

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

Поищите темы, где упоминается фрагмент код, содержащий delra — в них будет разговор о том, что можно сначала собрать номера строк, которые нужно скрыть, в массив, а потом уже этот массив удалять одним махом. Поменяете удаление на скрытие — вот и получите заметное ускорение)

 

Алексей Волков

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

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

#17

05.10.2014 21:35:46

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

Код
Sub СкрытиеСтрокПоУсловию() 
Dim DR As Range, LastRow As Long, r As Long 
Dim ra As Range, delra As Range, ТекстДляПоиска As String 
Application.ScreenUpdating = False ' отключаем обновление экрана 

ТекстДляПоиска = "Наименование ценности" ' скрываем строки с таким текстом 

' перебираем все строки в используемом диапазоне листа 
For Each ra In ActiveSheet.UsedRange.Rows 
' если в строке найден искомый текст 
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) IsNothing Then 
' добавляем строку в диапазон для скрытия 
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) 
End If 
Next 
' если подходящие строки найдены - скрываем их 
If Not delra Is Nothing Then delra.EntireRow.Hidden=TRUE 
End Sub
 

Исправил, спасибо за замечание,  

Изменено: Алексей Волков05.10.2014 21:41:31

 

Юрий М

Модератор

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

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

Вы видели, как другие оформляют код? Для этого есть специальный тег — кнопка <…>. Исправляйте.

 

Спасибо за замечание — исправил — на будущее учту

 

Юрий М

Модератор

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

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

В каком столбце будете искать ноль?

 
 

Юрий М

Модератор

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

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

#22

05.10.2014 22:08:46

Код
Sub СкрытиеСтрокПоУсловию()
Dim LastRow As Long, r As Long
Dim ra As Range, delra As Range
    Application.ScreenUpdating = False ' отключаем обновление экрана
    LastRow = Cells(Rows.Count, 9).End(xlUp).Row 'нашли последнюю строку по столбцу I
    ' перебираем все ячейки в столбце I
    For Each ra In Range(Cells(2, 9), Cells(LastRow, 9))
        ' если в ячейке ноль, то
        If ra = 0 Then
            ' добавляем строку в диапазон для скрытия
            If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
        End If
    Next
    ' если подходящие строки найдены - скрываем их
    If Not delra Is Nothing Then delra.EntireRow.Hidden = True
End Sub

 
 

Благодарю за оказанное содействие

 

SAS888

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

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

#24

06.10.2014 06:46:51

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

Код
Sub Main()
    Dim i As Long, x As Range: Application.ScreenUpdating = False
    i = Cells(Rows.Count, "I").End(xlUp).Row: Set x = Range("I1:I" & i)
    Cells(i + 2, "I") = [I1]: Cells(i + 3, "I") = "<>0"
    x.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Cells(i + 2, "I").Resize(2), Unique:=False
    Cells(i + 2, "I").Resize(2).ClearContents
End Sub

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

Код
ActiveSheet.ShowAllData

ПРИМЕЧАНИЕ: Ячейка «I1» должна содержать какое-либо значение (заголовок). Если это не так, то диапазон фильтрации нужно изменить на требуемый.

Изменено: SAS88806.10.2014 08:27:09

Чем шире угол зрения, тем он тупее.

 

gyuntner

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

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

#25

04.08.2015 17:22:26

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

Код
Sub отфильтровать()
Dim cell As Range: Application.ScreenUpdating = False
For Each cell In [D8:D1089].Cells
If cell.Find("*", , xlValues, xlPart) Is Nothing Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub

Но после того как отфильтрую, больше изменения внести не могу, если забыла что-то…
Как можно опять отобразить скрытые строки ??? Все перерыла не могу найти((( Помогите пожалуйста

 

Юрий М

Модератор

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

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

#26

04.08.2015 21:58:47

Цитата
gyuntner написал: Как можно опять отобразить скрытые строки ???

Вариант:

Код
Sub ShowHidden()
    With [D8:D1089].Cells
        .EntireRow.Hidden = False
    End With
End Sub
 

gyuntner

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

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

#27

05.08.2015 15:30:53

Спасибо, Юрий!!!!!:)

Как в Excel скрыть строки с нулем? Это руководство поможет вам скрыть строки с нулевым значением в Excel.

  • Использование макросов для скрытия строк с нулевым значением
  • Быстро скрыть строки с нулевым значением с помощью Kutools for Excel

Использование макросов для скрытия строк с нулевым значением

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

Шаг 1: нажмите Alt + F11 открыть окно VBA;

Шаг 2: нажмите Модули от Вставить вкладка, поместите код в Модули окно;

Шаг 3: нажмите Run кнопка или нажмите F5 применить VBA.

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

Sub HideRowsByZero()
'Update 20131107
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 = "0" Then
        Rng.EntireRow.Hidden = True
    End If
Next
End Sub

Быстро скрыть строки с нулевым значением с помощью Kutools for Excel

Утилита Select Specific Cells сторонней надстройки Kutools for Excel может помочь легко выбрать строки, содержащие нулевое значение.

Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Получить сейчас

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

После установки Kutools for Excel, подать заявление Выбрать определенные ячейки в соответствии с этими шагами:

Шаг 1: Выберите диапазон, в котором вы хотите скрыть строки с нулевым значением.

Шаг 2: нажмите Кутулс > Выберите Инструменты > Выбрать определенные ячейки. Смотрите скриншот:

Шаг 3: Примените настройку во всплывающем диалоговом окне:

1. выберите Весь ряд в опциях типа выбора;

2. Укажите конкретный тип как Равно 0и нажмите OK. Смотрите скриншот:

Наконечник: Вы можете добавить другие критерии в поле ниже, чтобы выбрать необходимые ячейки.

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

В следующем примере показано, как выбрать строки с нулевым значением с помощью Kutools for Excel. Смотрите скриншот:

Советы:

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

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


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

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

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

вкладка kte 201905


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

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

офисный дно

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


Номинальный 5 из 5


·


рейтинги 1

Макрос скрывает строки с нулями

Гость

Дата: Среда, 08.02.2012, 18:00 |
Сообщение № 1

Здравствуйте! Я нашел макрос который на 99% работает как мне нужно, но есть одна проблемка. Этот макрос скрывает строки (в примере ниже действует начиная со 2-ой строки) если в них в 6-ом столбце в ячейке записано «0». Работает нормально, но если в этот момент например в стобцах 1-5 попадется пустая ячейка, то макрос не работает=( Как сделать, чтобы макрос обращал внимание ТОЛЬКО на 6-ой столбик, и скрывал строки на основании данных только из 6-го столбца! Номер столбца 6 — взят для примера.

[vba]

Code

Private Sub tgbZero_Click()
Application.ScreenUpdating = False ‘ отключаем обновление экрана во время выполнения макроса
i = 2 ‘номер строки, с которой начнется обработка
While Not IsEmpty(Cells(i, 2)) ‘ проверяем каждую строчку пока не встретимся с пустым значением т.е. концом списка
If tgbZero Then ‘ при нажатом положении кнопка tgbZero принимает значениее True
Sheets(«4646»).tgbZero.Caption = «Отобразить все строки» ‘меняем надпись на кнопке, чтобы было понятно, что произойдет в следующий раз
If Cells(i, 6).Value = 0 Then ‘ прячем или показываем строки с нулевым значением
Rows(i).Hidden = True ‘ зависимости от значения в ячейке столбца «Кол»
Else ‘ и в зависимости от положения кнопки
Rows(i).Hidden = False
End If
Else
Sheets(«4646»).tgbZero.Caption = «Скрыть нулевые строки»
Rows(i).Hidden = False ‘ режим отображения всех строк в том числе и с нулем
End If
i = i + 1

Wend
Application.ScreenUpdating = False ‘ включаем обновление экрана во время выполнения макроса
End Sub

[/vba]

 

Ответить

RAN

Дата: Среда, 08.02.2012, 19:26 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Вы проверку запускаете по двум столбцам (B и F), а хотите, чтобы макрос смотрел на один.
Так не бывает. smile


Быть или не быть, вот в чем загвоздка!

 

Ответить

IgorGo

Дата: Среда, 08.02.2012, 20:13 |
Сообщение № 3

Группа: Друзья

Ранг: Форумчанин

Сообщений: 108


Репутация:

38

±

Замечаний:
0% ±


Quote (Гость)

While Not IsEmpty(Cells(i, 2))

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

 

Ответить

nerv

Дата: Среда, 08.02.2012, 22:27 |
Сообщение № 4

Группа: Редакторы

Ранг: Обитатель

Сообщений: 431

из макроса автора smile
[vba]

Code

Application.ScreenUpdating = False ‘ отключаем обновление экрана во время выполнения макроса
Application.ScreenUpdating = False ‘ включаем обновление экрана во время выполнения макроса

[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина — самый громкий звук

YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba

 

Ответить

Гость

Дата: Среда, 08.02.2012, 22:37 |
Сообщение № 5

Quote (RAN)

Вы проверку запускаете по двум столбцам (B и F), а хотите, чтобы макрос смотрел на один.
Так не бывает.

Спасибо исправил! Ввел переменную «b» — теперь она означает за выбор столбца. У меня 1500 строк и макрос на поиски и скрытие строк тратит 60 сек!! Т.е. 0.04 сек на строку. Это нормально? Как сделать чтоб не тормозило? Для такой простейшей операции мой комп более чем мощный

 

Ответить

Alex_ST

Дата: Четверг, 09.02.2012, 10:07 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

60 секунд на 1500 строк — это очень долго!
Но без вашего примера разбираться вряд ли кто-то станет подробно.

Quote (Гость)

Sheets(«4646»).tgbZero

Вы нам предлагаете самим составить за вас таблицу, на листе 4646 сделать ToggleButton и разбираться?
Выложите пример (никто же не просит всю книгу со всеми данными… достаточно только фрагмент с влияющими и зависимыми данными, а вдруг у вас там не макрос, а формулы тормозят?). Народ посмотрит.



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STЧетверг, 09.02.2012, 10:08

 

Ответить

Формуляр

Дата: Четверг, 09.02.2012, 10:24 |
Сообщение № 7

Группа: Друзья

Ранг: Ветеран

Сообщений: 832


Репутация:

255

±

Замечаний:
0% ±


Excel 2003, 2013

Quote (Гость)

Как сделать чтоб не тормозило?

На первый взгляд, нужно вынести операции с кнопкой за пределы цикла.

Но Alex_ST прав — без примера сказать наверняка, в чём затык, невозможно.


Excel 2003 EN, 2013 EN

 

Ответить

Alex_ST

Дата: Четверг, 09.02.2012, 12:24 |
Сообщение № 8

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Гость,
попробуйте так:[vba]

Code

Private Sub tgbZero_Click()
    Application.ScreenUpdating = False   ‘ отключить обновление экрана
    With Sheets(«4646»).tgbZero
       If .Value Then   ‘ если кнопка нажата
          Cells.EntireRow.AutoFit   ‘ показать все строки
          .Caption = «Скрыть нулевые строки»   ‘ сменить надпись на кнопке
       Else   ‘ если кнопка не нажата
          For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row   ‘ цикл со строки 2 до последней, в которой заполнена ячейка в столбце B (=2)
             Rows(i).Hidden = Cells(i, 6).Value = 0   ‘ если в столбце F (=6) в ячейке 0, то скрыть строку
          Next i
          .Caption = «Отобразить все строки»   ‘ сменить надпись на кнопке
       End If
    End With
    Application.ScreenUpdating = True   ‘ включить обновление экрана
End Sub

[/vba]



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 14:43 |
Сообщение № 9

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Alex_ST,
Я вот пропробовал — не работает

К сообщению приложен файл:

7041669.xls
(23.0 Kb)


С ув. Муля!

 

Ответить

RAN

Дата: Пятница, 10.02.2012, 14:57 |
Сообщение № 10

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

И почему у всех работает, а у Мули — нет?
Да наверное потому, что Муля вместо того, чтобы макрос запустить, на кнопочку жмет!

Можно и на эту с таким-же успехом давить


Быть или не быть, вот в чем загвоздка!

 

Ответить

Alex_ST

Дата: Пятница, 10.02.2012, 15:08 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Quote (Муля2010)

Я вот пропробовал — не работает

Муля2010,
Вообще-то из кода видно, что:
1. Должна быть не CommandButton, а ToggleButton
2. Обработка событий OLE-объектов ведётся в модуле листа, а вы зачем-то засунули код в стандартный модуль.

Вот: исправил тип элемента управления и перенёс код в модуль листа. Всё работает.

К сообщению приложен файл:

_7041669.xls
(23.5 Kb)



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 15:10 |
Сообщение № 12

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (RAN)

Можно и на эту с таким-же успехом давить

И почему у всех работает, а у Мули — нет?
Да наверное потому, что Муля вместо того, чтобы макрос запустить, на кнопочку жмет!

Можно и на эту с таким-же успехом давить
RAN

Так я же вроди макрос на кнопку то и подцепил


С ув. Муля!

 

Ответить

RAN

Дата: Пятница, 10.02.2012, 15:28 |
Сообщение № 13

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Вся беда, что только «вроди»…


Быть или не быть, вот в чем загвоздка!

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 15:42 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (RAN)

Вся беда, что только «вроди»…
Вся беда, что только «вроди»…RAN

Ув. RAN!
Энный раз прошу! Давайте жить дружно, без всяких подколок.
Если я вас чем то невзначай обидел, то прошу вашего прощения!


С ув. Муля!

 

Ответить

Alex_ST

Дата: Пятница, 10.02.2012, 16:11 |
Сообщение № 15

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

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

К сообщению приложен файл:

8982216.xls
(31.5 Kb)



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STПятница, 10.02.2012, 22:30

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 16:16 |
Сообщение № 16

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (Alex_ST)

ToggleButton

Прошу прощениЯ, но все таки хочу докопаться что у меня не так сделано.
Пробовал по всякому, в том числе и так, как у вас.
Ваш файл работает, а мой нет.
Посмотрите пжт, в чем причина.

К сообщению приложен файл:

8756434.xls
(24.5 Kb)


С ув. Муля!

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 16:35 |
Сообщение № 17

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (Alex_ST)

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

Алексей!
Класная штука! Прям гениалтно. СПАСИБО вам!


С ув. Муля!

 

Ответить

Муля2010

Дата: Пятница, 10.02.2012, 17:55 |
Сообщение № 18

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (Муля2010)

Прошу прощениЯ, но все таки хочу докопаться что у меня не так сделано.
Пробовал по всякому, в том числе и так, как у вас.
Ваш файл работает, а мой нет.
Посмотрите пжт, в чем причина.
Цитата, Alex_ST писал(а):
ToggleButton

Прошу прощениЯ, но все таки хочу докопаться что у меня не так сделано.
Пробовал по всякому, в том числе и так, как у вас.
Ваш файл работает, а мой нет.
Посмотрите пжт, в чем причина.Муля2010

Наконец то докумекал в чем причина.
Еще раз всем спасибо за помощь!


С ув. Муля!

 

Ответить

Alex_ST

Дата: Пятница, 10.02.2012, 21:18 |
Сообщение № 19

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Муля2010, а вы для кого по два раза в своём посте сами себя цитируете?
Мы тут, вроде, все не слишком тупые и всё давно поняли… biggrin



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Муля2010

Дата: Суббота, 11.02.2012, 13:31 |
Сообщение № 20

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Quote (Alex_ST)

Муля2010, а вы для кого по два раза в своём посте сами себя цитируете?
Мы тут, вроде, все не слишком тупые и всё давно поняли

День добрый!
да нет! Я не мог так даже в мыслях подумать.
Как то спонтантно получилось это безобразие с моей стороны.


С ув. Муля!

 

Ответить

Skip to content

На чтение 2 мин. Просмотров 2.5k.

Что делает макрос: В некоторых анализах, пустые клетки могут привести к неприятностям. Они могут вызвать проблемы сортировки, вызвать ошибку при автоматическом заполнении, в сводных таблицах (применить функцию Count вместо функции Sum), и так далее.
Этот макрос может заменить пустые ячейки нулем.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

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

Код макроса

Sub ZamenitPustieYacheikiNulem()
'Шаг 1: Объявляем переменные
Dim MyRange As Range
Dim MyCell As Range
'Шаг 2: Сохранить книгу прежде, чем изменить ячейки?
Select Case MsgBox("Перед изменением ячеек. " & _
"Сохранить книгу?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Шаг 3: Определяем целевой диапазон
Set MyRange = Selection
'Шаг 4: Запускаем цикл по диапазону
For Each MyCell In MyRange
'Шаг 5: Заменяем пустую ячейку
If Len(MyCell.Value) = 0 Then
MyCell = 0
End If
'Шаг 6: Получаем следующую ячейку в диапазоне
Next MyCell
End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные объекта Range.
  2. Мы должны сохранить книгу перед запуском макроса.
  3. Шаг 3 заполняет переменную MyRange с целевым диапазоном.
  4. Шаг 4 начинает цикл через каждую ячейку в целевом диапазоне.
  5. После того, как клетка активируется, Шаг 5 использует функцию IsEmpty, чтобы убедиться, что ячейка не пуста. Затем мы используем функцию Len, которая является стандартной функцией Excel, которая возвращает номер, соответствующий длине строки. Если ячейка пуста, то длина будет равна 0. Можно, очевидно, заменить бланк с любым значением, которое вы хотели бы (N / A, пока не определено, Нет данных, и т.д.).
  6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Понравилась статья? Поделить с друзьями:
  • Нумерация разделов в excel
  • Нумерация пустых ячеек в excel
  • Нумерация пунктов в excel
  • Нумерация примечаний в word 2016
  • Нумерация позиций в excel