VBA за скриване на редове в Excel (14 метода)

  • Споделя Това
Hugh West

Съдържание

Понякога се налага да скрием някои конкретни редове, когато използваме голям набор от данни в Excel, за да подобрим четливостта. Макрос VBA е най-ефективният, най-бързият и най-сигурният метод за изпълнение на всякакви операции в Excel. В тази статия ще ви покажем как да скриване на редове в Excel въз основа на различни критерии с помощта на макроса VBA.

Изтегляне на работна тетрадка

Можете да изтеглите безплатната учебна тетрадка на Excel от тук.

Скриване на редове с VBA.xlsm

14 метода с VBA за скриване на редове в Excel

В този раздел ще разгледаме 12 различни метода с VBA към скриване на редове в Excel. Примерът, който ще използваме в цялата статия, е показан по-долу.

1. вграждане на VBA за скриване на единичен ред в Excel

Ако искате да скриване на един ред с VBA След това следвайте стъпките, описани по-долу. В нашия случай ще скриване на ред номер 5 ( Фамилия ) от нашия набор от данни.

Стъпки:

  • Натиснете Alt + F11 на клавиатурата или отидете в раздела Разработчик -> Visual Basic да отворите Редактор на Visual Basic .

  • В изскачащия прозорец с код, в лентата с менюта щракнете върху Вмъкване -> Модул .

  • Копирайте следния код и го поставете в прозореца за код.
 Sub HideSingleRow() Worksheets("Single").Range("5:5").EntireRow.Hidden = True End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • Работни листове("Single") = Задайте име на работния лист.
  • Обхват("5:5") = Pass ред номер 5 вътре в Обхват метод.

  • Натиснете F5 на клавиатурата или от лентата с менюта изберете Run -> Run Sub/UserForm Можете също така просто да щракнете върху малка икона Play в лентата с подменюта, за да стартирате макроса.

Забележете на изображението по-долу, ред номер 5 се скрива след изпълнението на VBA код.

Прочетете още: Формула за скриване на редове в Excel (7 метода)

2. Вмъкване на макрос за скриване на съседни редове в Excel

Научихте как да скриете един ред с VBA . Но да предположим, че искате да скриване на диапазон от редове които са съседни . Можете да го направите и с VBA в Excel. Ще скрий редове от 5 до 7 от нашия набор от данни, показан по-горе.

Стъпки:

  • По същия начин, както преди, отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideContiguousRows() Worksheets("Contiguous").Range("5:7").EntireRow.Hidden = True End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • Работни листове("Съседни") = Задайте име на работния лист.
  • Обхват("5:7") = Pass номер на реда от 5 до 7 вътре в Обхват метод.

  • Изпълнявайте този код и вижте на следващата снимка, че редове от 5 до 7 сега са скрити.

Прочетете още: Как да скривате и премахвате редове в Excel (6 най-лесни начина)

3. вграждане на макрос за отделяне на несвързани редове

Този път ще научите как да скриване на редове в Excel, които са несвързани с VBA . С нашия набор от данни кодът за скрий редове 5, 6, 8 и 9 са дадени по-долу.

Стъпки:

  • Както вече беше показано, отворените Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideNonContiguousRows() Worksheets("Non-Contiguous").Range("5:6, 8:9").EntireRow.Hidden = True End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • Работни листове("Несъседни") = Задайте име на работния лист.
  • Обхват("5:6, 8:9") = Pass ред номер 5 до 6 и 8 до 9 вътре в Обхват метод.

  • Изпълнявайте тази част от кода и вижте, че редове 5 до 6 и 8 до 9 са скрити на следващата снимка.

Прочетете още: Как да скриете редове в Excel (6 ефективни метода)

4. Макрос за скриване на всички редове, съдържащи текстове в Excel

Ако искате да скриване на всички редове, които съдържат текст стойности, след което следвайте стъпките, посочени по-долу.

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideAllRowsContainsText() LastRow = 1000 'Нека предположим, че има 1000 реда в набора от данни For i = 1 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'За да скрием всички редове с текстови данни If IsNumeric(Range("C" & i)) = False Then Rows(i).EntireRow.Hidden = True Next End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • IsNumeric(Range("C" & i)) = Данните в нашия набор от данни започват от колона C, затова преминахме C вътре в Обхват метод.

  • Изпълнявайте този код и ще забележите. всички редове които са съдържащ текст вече са скрити.

Прочетете още: Как да скриете няколко реда в Excel (9 метода)

5. Макрос за прикриване на всички редове, съдържащи числа, в Excel

И ако искате да скриете всички редове, които съдържат числови стойности с VBA След това следвайте стъпките, посочени по-долу.

Стъпки:

  • Отвори Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideAllRowsContainsNumbers() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием всички редове с цифрови данни If IsNumeric(Range("C" & i)) = True Then Rows(i).EntireRow.Hidden = True Next End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • IsNumeric(Range("C" & i)) = Данните в нашия набор от данни започват от колона C, затова преминахме C вътре в Обхват метод.

  • Изпълнявайте този код и забележете, че всички редове които са съдържащи числови стойности сега са скрити.

Прочетете още: Скриване на дублиращи се редове въз основа на една колона в Excel (4 метода)

6. Макрос за скриване на редове, съдържащи нула (0) в Excel

Да предположим, че искате да скриете само редовете от определена колона, които са стопанство 0 (нула) Вижте следния набор от данни, в който Колона Е притежава 0 в ред 7 и 82 в ред 10 . Ще се научим как да да скриете само реда, в който се намира 0 ( ред 7 ) с VBA в Excel.

Стъпки:

  • Отвори Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsZero() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ 0 в колона E If Range("E" & i) = 0 Then Rows(i).EntireRow.Hidden = True Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и забележете, че редът ( ред 7 ), които са съдържали 0 в колона E вече е скрита, докато ред 10 която носи 82 не е скрит.

Прочетете още: Как да скриете празните редове в Excel VBA (4 полезни метода)

7. прилагане на макрос за скриване на редове с отрицателни стойности в Excel

Точно както можете да скриете редове, които съдържат нули от една и съща колона, можете да скриване на редове, които съдържат отрицателни стойности С набора от данни, показан по-долу, където колона E съдържа както отрицателни, така и положителни стойности, ще видим кода, който скрива само отрицателната стойност.

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsNegative() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ отрицателни стойности в колона E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и забележете, че ред 7 която съдържаше отрицателна стойност (-10) в колона E вече е скрита, докато ред 10 която носи 82 не е скрит.

8. вграждане на VBA за прикриване на редове, съдържащи положителни стойности в Excel

Този път с набора от данни, даден по-долу, където колона E съдържа и двете нулеви положителни стойности, ще видим VBA код, който скрива само положителния .

Стъпки:

  • Отвори Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsPositive() LastRow = 1000 'Да предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ положителни стойности в колона E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и забележете, че ред 7 която съдържаше положителна стойност (55) в колона E вече е скрита, докато ред 10 която носи 0 не е скрит.

Прочетете още: VBA за скриване на редове въз основа на стойността на клетката в Excel (14 примера)

9. Макрос за скриване на редове, които съдържат нечетни числа в Excel

Можете да скриване на редове с нечетни числа В примера, който показахме в началото на тази статия, колона E притежава както нечетни, така и четни числа в редове 7 и 10 . Ще научим кода на скриване на реда който притежава нечетни числа само.

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsOdd() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ положителни стойности в колона E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) Mod 2 = 1 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте тази част от кода и вижте, че само ред 7 която съдържаше нечетен брой (55) в колона E вече е скрита, докато ред 10 която носи четно число (82) не е скрит.

10. VBA за скриване на редове, съдържащи четни числа в Excel

По същия начин можете да скриване на редове с четни числа В примера, който показахме в началото на тази статия, колона F притежава както нечетни, така и четни числа в редове 7 и 10 . Ще научим кода на скриване на реда който притежава четни числа само.

Стъпки:

  • Отвори Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsEven() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ положителни стойности в колона F If IsNumeric(Range("F" & i)) = True Then If Range("F" & i) Mod 2 = 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и вижте, че само ред 7 която съдържаше четно число (100) в колона F вече е скрита, докато ред 10 която носи нечетен брой (75) не е скрит.

Прочетете още: Excel VBA: скриване на всички редове в Excel (5 практически примера)

11. вмъкване на макропрограма за скриване на редове, които са по-големи от определено условие

Можете да скриване на редове, които са по-големи от определена стойност с VBA Excel. Да предположим, че искате да скриете редовете от колона E където стойността е повече от 80 Ето как да го направите:

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsGreater() LastRow = 1000 'Да предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ положителни стойности в колона E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и вижте, че само ред 10 която съдържаше 82 (което е по-голямо от 80) в колона E вече е скрита, докато ред 7 която носи 55 не е скрит.

Прочетете още: Скриване на редове въз основа на стойността на клетката с условно форматиране в Excel

12. вграждане на макрос за покриване на редове, които са по-малки от определено условие в Excel

Можете също така да скриване на редове, които са по-малки от определена стойност с VBA Excel. Да предположим, че искате да скриете редовете от колона E където стойността е по-малко от 80 Ето как да го направите:

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowContainsLess() LastRow = 1000 'Нека предположим, че в набора от данни има 1000 реда For i = 4 To LastRow 'Преминаваме през всеки ред и проверяваме за необходимото условие 'Задаваме i = 4, защото нашите данни започват от ред 4 'За да скрием реда, съдържащ положителни стойности в колона E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте този код и вижте, че само ред 7 която съдържаше 55 (което е по-малко от 80) в колона E вече е скрита, докато ред 10 който е пренасяне на 82 не е скрит.

13. Скриване на редове въз основа на стойността на текста на клетката с макрос

Да предположим, че искате да скриване на ред, който съдържа определен текст В нашия случай ще ви дадем пример с реда, който съдържа думата " Химия ", ред 6 и ще ви предоставим кода за скриване на този ред.

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowCellTextValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "Chemistry" Then Cells(i, iCol).EntireRow.Hidden = False Else Cells(i, iCol).EntireRow.Hidden = True End If Next i End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • StartRow = 4 -> Първи ред на набора от данни.
  • LastRow = 10 -> Последен ред на набора от данни.
  • iCol = 4 -> адрес на колоната че съдържа текста стойност.

  • Изпълнявайте този код и забележете, че ред номер 6 която се състои от думата " Химия " е скрит.

14. Макрос за скриване на редове въз основа на цифровата стойност на клетката в Excel

По-рано видяхте как да скриете ред въз основа на стойността на текста в клетката, а този път ще научите как да направите това, когато стойността е числова В нашия случай ще ви дадем пример с реда, който съдържа цифровата стойност " 87 ", ред 7 и ще ви предоставим кода за скриване на този ред.

Стъпки:

  • Отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub HideRowCellNumValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "87" Then Cells(i, iCol).EntireRow.Hidden = False Else Cells(i, iCol).EntireRow.Hidden = True End If Next i End Sub 

Вашият код вече е готов за изпълнение.

Тук,

  • StartRow = 4 -> Първи ред на набора от данни.
  • LastRow = 10 -> Последен ред на набора от данни.
  • iCol = 4 -> адрес на колоната че съдържа текста стойност.

  • Изпълнявайте този код и забележете, че ред номер 7 която се състои от цифровата стойност " 87 " е скрит.

Прочетете още: Как да скриете редове въз основа на стойността на клетката в Excel (5 метода)

Заключение

Тази статия ви показва как да скриване на редове в Excel с VBA . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.