VBA för att dölja rader i Excel (14 metoder)

  • Dela Detta
Hugh West

Ibland behöver vi dölja vissa specifika rader när vi använder våra stora datamängder i Excel för att förbättra läsbarheten. Implementering av VBA-makro är den mest effektiva, snabbaste och säkraste metoden för att utföra alla operationer i Excel. I den här artikeln kommer vi att visa dig hur du kan dölja rader i Excel baserat på olika kriterier med hjälp av VBA-makrot.

Ladda ner arbetsboken

Du kan ladda ner den kostnadsfria Excel-arbetsboken för övningar här.

Dölja rader med VBA.xlsm

14 metoder med VBA för att dölja rader i Excel

I det här avsnittet kommer vi att diskutera 12 olika metoder med VBA till dölja rader i Excel. Exemplet som vi kommer att använda i hela artikeln visas nedan.

1. Bädda in VBA för att dölja en rad i Excel

Om du vill dölja en enskild rad med VBA koden och följ sedan de steg som beskrivs nedan. I vårt fall kommer vi att dölja rad nummer 5 ( Efternamn ) från vårt dataset.

Steg:

  • Tryck på Alt + F11 på tangentbordet eller gå till fliken Utvecklare -> Visual Basic för att öppna Redigerare för Visual Basic .

  • I popup-kodfönstret klickar du i menyraden på Infoga -> Modul .

  • Kopiera följande kod och klistra in den i kodfönstret.
 Sub HideSingleRow(() Arbetsblad("Single").Range("5:5").EntireRow.Hidden = True End Sub 

Din kod är nu redo att köras.

Här,

  • Arbetsblad("Single") = Ställ in arbetsbladets namn.
  • Range("5:5") = Godkänd rad nummer 5 i den inre delen av Utbud metod.

  • Tryck på F5 på tangentbordet eller välj i menyraden Kör -> Kör Sub/UserForm Du kan också bara klicka på liten Play-ikon i undermenyfältet för att köra makrot.

Lägg märke till det i bilden nedan, rad nummer 5 döljs efter att ha utfört VBA kod.

Läs mer: Formel för att dölja rader i Excel (7 metoder)

2. Infoga makro för att dölja sammanhängande rader i Excel

Du har lärt dig att dölja en enskild rad med VBA . Men anta att du vill dölja ett antal rader som är sammanhängande Det kan du också göra med VBA i Excel. Vi kommer att dölja rader nummer 5 till 7 från vårt dataset som visas ovan.

Steg:

  • På samma sätt som tidigare, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideContiguousRows() Arbetsblad("Contiguous").Range("5:7").EntireRow.Hidden = True End Sub 

Din kod är nu redo att köras.

Här,

  • Arbetsblad("Sammanhängande") = Ställ in arbetsbladets namn.
  • Range("5:7") = Godkänd rad nummer 5 till 7 i den inre delen av Utbud metod.

  • Kör denna kod och ser i följande bild att raderna 5 till 7 är dolda nu.

Läs mer: Hur man döljer och avlägsnar rader i Excel (6 enklaste sätt)

3. Inbädda ett makroprogram för att avskilja icke sammanhängande rader

Den här gången får du lära dig att dölja rader i Excel som är Icke sammanhängande med VBA Med vårt dataset kan koden för att dölja raderna 5, 6, 8 och 9 anges nedan.

Steg:

  • Som tidigare visats kan öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideNonContiguousRows() Arbetsblad("Non-Contiguous").Range("5:6, 8:9").EntireRow.Hidden = True End Sub 

Din kod är nu redo att köras.

Här,

  • Arbetsblad("Icke sammanhängande") = Ställ in arbetsbladets namn.
  • Range("5:6, 8:9") = Godkänd rad nummer 5 till 6 och 8 till 9 i den inre delen av Utbud metod.

  • Kör den här koden och se att raderna 5 och 6 och 8 till 9 är dolda i följande bild.

Läs mer: Hur man döljer rader i Excel (6 effektiva metoder)

4. Makro för att dölja alla rader som innehåller text i Excel

Om du vill dölja alla rader som innehåller text värden och följ sedan de steg som anges nedan.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideAllRowsContainsText() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 1 To LastRow 'Slinga dig igenom varje rad och kontrollera om det krävs 'För att dölja alla rader med textdata If IsNumeric(Range("C" & i)) = False Then Rows(i).EntireRow.Hidden = True Next End Sub 

Din kod är nu redo att köras.

Här,

  • IsNumeric(Range("C" & i))) = Uppgifterna i vårt dataset börjar från kolumn C, så vi passerade C i den inre delen av Utbud metod.

  • Kör den här koden och du kommer att märka följande alla rader som var som innehåller text värden är nu dolda.

Läs mer: Hur du tar fram flera rader i Excel (9 metoder)

5. Makro för att dölja alla rader som innehåller siffror i Excel

Och om du vill gömma dig alla rader som innehåller numeriska värden med VBA kod och följ sedan de steg som anges nedan.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideAllRowsContainsNumbers() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det krävs 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja alla rader med numeriska data If IsNumeric(Range("C" & i)) = True Then Rows(i).EntireRow.Hidden = True Next End Sub 

Din kod är nu redo att köras.

Här,

  • IsNumeric(Range("C" & i))) = Uppgifterna i vårt dataset börjar från kolumn C, så vi passerade C i den inre delen av Utbud metod.

  • Kör denna kod och märker att alla rader som var som innehåller numeriska värden tidigare är nu dolda.

Läs mer: Dölja dubbla rader baserade på en kolumn i Excel (4 metoder)

6. Makro för att dölja rader som innehåller noll (0) i Excel

Anta att du vill dölja endast de rader från en specifik kolumn som är innehav 0 (noll) Titta på följande dataset där E-kolumn har 0 i rad 7 och 82 i rad 10 Vi kommer att lära oss att döljer endast den rad som innehåller 0 ( rad 7 ) med VBA i Excel.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsZero() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller 0 i kolumnen E If Range("E" & i) = 0 Then Rows(i).EntireRow.Hidden = True Next End Sub 

Din kod är nu redo att köras.

  • Kör den här koden och märker att raden ( rad 7 ) som innehöll 0 kolumn E är nu dold, medan rad 10 som bär 82 inte är dold.

Läs mer: Hur man döljer tomma rader i Excel VBA (4 användbara metoder)

7. Implementera makro för att dölja rader med negativa värden i Excel

På samma sätt som du kan dölja rader som innehåller nollor från samma kolumn kan du dölja dölja rader med negativa värden också. Med den datauppsättning som visas nedan där kolumn E innehåller både negativa och positiva värden, kommer vi att se koden som bara döljer det negativa värdet.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsNegative() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller negativa värden i kolumnen E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Din kod är nu redo att köras.

  • Kör denna kod och märker att rad 7 som innehöll en negativt värde (-10) kolumn E är nu dold, medan rad 10 som bär 82 inte är dold.

8. Inbädda VBA för att dölja rader som innehåller positiva värden i Excel

Den här gången med det dataset som ges nedan, där kolumn E innehåller båda noll positiva värden, kommer vi att se att VBA kod som döljer endast den positiva delen .

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsPositive() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller positiva värden i kolumnen E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Din kod är nu redo att köras.

  • Kör denna kod och märker att rad 7 som innehöll en positivt värde (55) kolumn E är nu dold, medan rad 10 som bär 0 inte är dold.

Läs mer: VBA för att dölja rader baserat på cellvärde i Excel (14 exempel)

9. Makro för att dölja rader som innehåller udda tal i Excel

Du kan dölja rader med udda nummer som värde. I exemplet som vi visade i början av denna artikel, kolumn E har både udda och jämna tal i raderna 7 och 10 Vi kommer att lära oss koden för dölja raden som håller udda tal endast.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsOdd() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller positiva värden i kolumnen 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 

Din kod är nu redo att köras.

  • Kör denna kod och se att endast rad 7 som innehöll en udda nummer (55) kolumn E är nu dold, medan rad 10 som bär en jämnt antal (82) inte är dold.

10. VBA för att dölja rader med jämna tal i Excel

På samma sätt kan du dölja rader med jämna tal som värde. I exemplet som vi visade i början av denna artikel, kolumn F har både udda och jämna tal i raderna 7 och 10 Vi kommer att lära oss koden för dölja raden som håller jämna tal endast.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsEven() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller positiva värden i kolumnen 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 

Din kod är nu redo att köras.

  • Kör denna kod och se att endast rad 7 som innehöll en jämnt antal (100) kolumn F är nu dold, medan rad 10 som bär en udda nummer (75) inte är dold.

Läs mer: Excel VBA: Dölj alla rader i Excel (5 praktiska exempel)

11. Infoga makro för att dölja rader som är större än ett visst villkor

Du kan dölja rader som är större än ett specifikt värde med VBA Excel. Antag att du vill dölja raderna från kolumn E där värdet är större än 80 %. Så här gör du:

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsGreater() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller positiva värden i kolumnen E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Din kod är nu redo att köras.

  • Kör denna kod och se att endast rad 10 som innehöll 82 (som är större än 80) i kolumn E är nu dold, medan rad 7 som bär 55 inte är dold.

Läs mer: Dölja rader baserat på cellvärde med villkorlig formatering i Excel

12. Bädda in ett makro för att täcka rader som är mindre än ett visst villkor i Excel

Du kan också dölja rader som är mindre än ett specifikt värde med VBA Excel. Antag att du vill dölja raderna från kolumn E där värdet är mindre än 80 %. Så här gör du:

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub HideRowContainsLess() LastRow = 1000 'Låt oss anta att det finns 1000 rader i datasetet For i = 4 To LastRow 'Slinga dig igenom varje rad och kontrollera om det önskade villkoret är uppfyllt 'Vi ställer in i = 4 eftersom våra data börjar från rad 4 'För att dölja raden som innehåller positiva värden i kolumnen E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Din kod är nu redo att köras.

  • Kör denna kod och se att endast rad 7 som innehöll 55 (som är mindre än 80) i kolumn E är nu dold, medan rad 10 som är bärande 82 inte är dold.

13. Dölja rader baserat på cellens textvärde med makro

Anta att du vill dölja en rad som innehåller en viss text I vårt fall kommer vi att ge dig ett exempel med raden som innehåller ordet " Kemi ", rad 6 och ger dig koden för att dölja raden.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 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 

Din kod är nu redo att köras.

Här,

  • StartRow = 4 -> Första raden av datamängden.
  • LastRow = 10 -> Sista raden av datamängden.
  • iCol = 4 -> Den kolumnadress som innehåller texten värde.

  • Kör denna kod och märker att rad nummer 6 som består av ordet " Kemi " är dold.

14. Makro för att dölja rader baserat på cellens numeriska värde i Excel

Tidigare har du sett hur du döljer en rad baserat på cellens textvärde, den här gången ska du lära dig hur du gör det när värdet är numeriskt I vårt fall kommer vi att ge dig ett exempel med raden som innehåller det numeriska värdet " 87 ", rad 7 och ger dig koden för att dölja raden.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 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 

Din kod är nu redo att köras.

Här,

  • StartRow = 4 -> Första raden av datamängden.
  • LastRow = 10 -> Sista raden av datamängden.
  • iCol = 4 -> Den kolumnadress som innehåller texten värde.

  • Kör denna kod och märker att rad nummer 7 som består av det numeriska värdet " 87 " är dold.

Läs mer: Hur du döljer rader baserat på cellvärde i Excel (5 metoder)

Slutsats

I den här artikeln fick du veta hur du kan dölja rader i Excel med VBA Jag hoppas att den här artikeln har varit till stor nytta för dig. Du får gärna fråga om du har några frågor om ämnet.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.