Innehållsförteckning
I stora databaser har du tillbringat den mesta tiden med att hantera intervall och celler. Ibland måste du upprepa samma åtgärd i stora intervall eller ett stort antal celler. Detta tar tid och minskar effektiviteten. Den smarta lösningen på detta problem är att bygga en VBA-programmeringskod som kommer att köra igenom varje cell i intervallet och utföra samma åtgärd som du har anvisat. I den här artikeln diskuterar vi hur man gör VBA för varje cell i intervallet i Excel.
Ladda ner övningsboken
Ladda ner den här övningsboken för att träna på uppgiften medan du läser den här artikeln.
VBA-kod för varje cell i ett intervall i Excel.xlsx3 lämpliga sätt att tillämpa VBA för varje cell i intervallet i Excel
Med hjälp av en VBA-kod kan du utföra samma formel för varje cell i ett intervall, en kolumn eller en rad. I det här avsnittet går vi igenom alla avsnitt.
1. Tillämpa VBA för varje cell i intervallet
Tänk dig en situation där du måste använda samma VBA-kod för varje cell i ett visst intervall ( B3:F12 ). För att göra detta ska vi skapa en VBA-kod. Anvisningarna finns nedan.
Steg 1:
- Först ska vi infoga en kommandoknapp för att förenkla vårt arbete. Gå till din Fliken för utvecklare , välj Infoga och klicka på kommandoknappen för att få en.
- Vi har fått vår kommandoknapp.
- Högerklicka på kommandoknappen för att öppna alternativ. Välj och klicka på Egenskaper för att ändra vissa alternativ.
- Ändra rubriken för kommandoknappen. Här ändrar vi namnet till " Klicka här ".
Steg 2:
- Dubbelklicka på kommandoknappen för att öppna VBA-versionen. Modul Här skriver vi ner vår VBA-kod för uppgiften.
- Först deklarerar vi två variabler. Vi kallar intervallobjekten för CL och Rng Du kan namnge dem som du vill.
Dim CL som intervall Dim Rng som intervall
- Tilldela ett specifikt intervall med det här kommandot,
Set Rng = Arbetsblad("VBA1").Range("B3:F12")
- Här är VBA1 vårt arbetsbladsnamn och B3:F12 är vårt definierade område.
- Nu ska vi använda koden för att gå igenom varje cell i intervallet. Koden är,
För varje CL i Rng CL.Value = 100 Nästa CL
- Värde = 100 hänvisar till att den kommer att återge 100 för varje cell i det givna intervallet.
- Vår slutliga kod blir alltså,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub
- Gå till huvudarbetsbladet och klicka på kommandoknappen för att köra VBA för varje cell i intervallet.
Steg 3:
- Liksom numeriska värden kan vi också ange textvärden för varje cell i intervallet. I det fallet går du till VBA-fönstret och i stället för 100 anger du det textvärde som du vill köra igenom. Den ändrade raden är
CL.Value = "ExcelWIKI"
- Klicka på kommandoknappen och VBA-koden returnerar detta textvärde för varje cell i intervallet.
Steg 4:
- I det här steget ska vi gräva lite djupare. Låt oss säga att vi vill markera varje tom cell i vårt intervall.
- Lägg därför till ett nytt villkor i din befintliga kod. Den nya formeln är,
Om CL.Value = " " Då CL.Interior.ColorIndex = 3 End If
- Den nya koden markerar den tomma cellen med röd färg. Den fullständiga koden är alltså,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub
- Få resultatet genom att klicka på kommandoknappen.
Liknande läsningar:
- Hur man använder Range Object i VBA i Excel (5 egenskaper)
- Använd VBA Range Offset (11 sätt)
- Hur du räknar text i Excel (7 enkla knep)
2. Infoga VBA-kod för varje cell i en kolumn i ett intervall
Vi kan också köra VBA-kod för varje cell i en kolumn. Antag att vi har en kolumn med siffror och att vi måste färglägga värden som är lägre än 10. Vi kommer att skapa en VBA-kod för att köra varje cell i kolumnen.
Steg 1:
- Skapa en kommandoknapp enligt de instruktioner som vi har diskuterat.
Steg 2:
- Dubbelklicka på kommandoknappen för att öppna VBA-fönstret.
- Vi deklarerar en variabel som heter " c "Vi använder variabeln av typen Long här eftersom Long-variabler har större kapacitet än Integer-variabler.
Dim c som lång
- Lägg sedan till kodraden som ändrar teckensnittsfärgen för alla celler i vår kolumn till svart.
Columns(1).Font.Color = vbBlack
- Infoga slingan för den här koden.
For c = 1 To Rows.Count Next c
- I det här steget anger vi ett villkor för att färga de värden som är lägre än värdet i cell C4 (10). Ange den här koden för att göra det.
If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If
- Den slutliga koden är alltså,
Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub
- VBA-programmet körs och visar resultat när du klickar på kommandoknappen.
3. Skriv en VBA-kod för varje cell i en rad i ett intervall
Vi kan också köra en VBA-kod för varje cell i en rad. I den givna raden måste vi utföra samma åtgärd på varje cell i raden.
Steg 1:
- Lägg till en kommandoknapp och ändra dess namn till " Klicka här! "
- Dubbelklicka på knappen för att öppna VBA-fönstret. Skriv ner VBA-koden nedan.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'För varje cell i en rad och tillämpa en gul färgfyllning For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- Koden går igenom varje cell i raden och fyller varje cell med en gul färg.
- Klicka på knappen och resultatet finns här.
Snabba anteckningar
👉 Om du inte har din utvecklarflik synlig kan du aktivera den med hjälp av den här instruktionen.
Anpassat snabbåtkomstverktygsfält → Fler kommandon → Anpassa bandet → Utvecklare → OK
Slutsats
Vi har gått igenom tre olika tillvägagångssätt för att köra VBA för varje cell i ett intervall. Du är varmt välkommen att kommentera om du har några frågor eller funderingar. Du kan också kolla in våra andra artiklar om Excel-uppgifterna!