Indholdsfortegnelse
I store databaser bruger du det meste af din tid på at håndtere intervaller og celler. Nogle gange skal du gentage den samme handling i store intervaller eller et stort antal celler. Dette koster dig samtidig tid og reducerer din effektivitet. Den smarte løsning på dette problem er at bygge en VBA-programmeringskode som vil køre gennem hver celle i intervallet og udføre den samme handling, som du har instrueret dig. I dag i denne artikel vil vi diskutere, hvordan du laver VBA for hver celle i intervallet i Excel.
Download arbejdsbog til øvelser
Download denne øvelsesbog for at øve dig i opgaven, mens du læser denne artikel.
VBA-kode for hver celle i et område i Excel.xlsx3 egnede måder at anvende VBA på for hver celle i området i Excel
Ved hjælp af en VBA-kode kan du udføre den samme formel for hver celle i et område, en kolonne eller en række. I dette afsnit gennemgår vi alle afsnittene.
1. Anvend VBA for hver celle i området
Overvej en situation, hvor du skal anvende den samme VBA-kode for hver celle i et givet område ( B3:F12 ). For at gøre dette skal vi lave en VBA-kode. Vejledningen er angivet nedenfor
Trin 1:
- Først vil vi indsætte en kommandoknap for at forenkle vores arbejde. Gå til din Fanen Udvikler , vælg Indsæt , og klik på kommandoknappen for at få en.
- Vi har fået vores kommandoknap.
- Højreklik på kommandoknappen for at åbne indstillinger. Vælg og klik på Egenskaber for at ændre nogle indstillinger.
- Ændre kommandoknappens titel. Her ændrer vi navnet til " Klik her ".
Trin 2:
- Dobbeltklik nu på kommandoknappen for at åbne VBA Modul Her vil vi skrive vores VBA-kode til opgaven ned.
- Først skal vi erklære to variabler. Vi kalder range-objekterne CL og Rng Du kan navngive dem, som du vil.
Dim CL As Range Dim Rng As Range
- Tildel et bestemt område med denne kommando,
Set Rng = Worksheets("VBA1").Range("B3:F12")
- Her er VBA1 navnet på vores regneark og B3:F12 er vores definerede område.
- Nu skal vi bruge koden til at udføre gennem hver enkelt celle i intervallet. Koden er,
For Each CL In Rng CL.Value = 100 Next CL
- Værdi = 100 henviser til, at den vil returnere 100 for hver celle i det givne område.
- Så vores endelige kode bliver,
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å til dit primære regneark, og klik på kommandoknappen for at køre VBA for hver celle i området.
Trin 3:
- Ligesom numeriske værdier kan vi også indsætte tekstværdier for hver celle i intervallet. I så fald skal du gå til VBA-vinduet og i stedet for 100 indsætte den tekstværdi, du ønsker at køre igennem. Den ændrede linje er
CL.Value = "ExcelWIKI"
- Klik på kommandoknappen, og VBA-koden returnerer denne tekstværdi for hver celle i området.
Trin 4:
- I dette trin vil vi grave lidt dybere. Lad os sige, at vi ønsker at fremhæve hver tom celle i vores område.
- Tilføj derfor en ny betingelse til din eksisterende kode. Den nye formel er,
Hvis CL.Value = " " Derefter CL.Interior.ColorIndex = 3 End If
- Denne nye kode vil fremhæve den tomme celle med rød farve. Så den fulde kode er,
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 ved at klikke på kommandoknappen.
Lignende læsninger:
- Sådan bruges Range Object i VBA i Excel (5 egenskaber)
- Brug VBA Range Offset (11 måder)
- Sådan tæller du tekst i Excel (7 nemme tricks)
2. Indsæt VBA-kode for hver celle i en kolonne i et område
Vi kan også køre VBA-kode for hver enkelt celle i en kolonne. Lad os antage, at vi har en kolonne med tal, og at vi skal farve værdier, der er lavere end 10. Vi vil lave en VBA-kode til at køre hver enkelt celle i kolonnen.
Trin 1:
- Opret en kommandoknap ved at følge de instruktioner, som vi har gennemgået.
Trin 2:
- Dobbeltklik på kommandoknappen for at åbne VBA-vinduet.
- Vi erklærer en variabel kaldet " c "Vi bruger variablen af typen Long her, fordi Long-variabler har en større kapacitet end Integer-variabler.
Dim c As Long
- Tilføj derefter den kodelinje, der ændrer skriftfarven i alle cellerne i vores kolonne til sort.
Columns(1).Font.Color = vbBlack
- Indsæt løkken for denne kode.
For c = 1 Til Rows.Count Næste c
- I dette trin indtaster vi en betingelse for at farve de værdier, der er lavere end værdien i celle C4 (10). Indtast denne kode for at gøre 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
- Så den endelige kode er,
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'en kører og viser resultaterne, når du klikker på kommandoknappen.
3. Skriv en VBA-kode for hver celle i en række i et område
Vi kan også køre en VBA-kode for hver celle i en række. I den givne række skal vi udføre den samme handling på hver celle i rækken.
Trin 1:
- Tilføj en kommandoknap, og ændre dens navn til " Klik her! "
- Dobbeltklik på knappen for at åbne VBA-vinduet. Skriv den nedenstående VBA-kode ned.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'For hver celle i en række, og anvend en gul farvefyldning For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- Koden kører gennem hver celle i rækken og anvender en gul farve til at fylde hver celle med.
- Klik på knappen, og du kan se resultatet her.
Hurtige noter
👉 Hvis du ikke har din udviklerfanebladet synligt, kan du aktivere det ved hjælp af denne vejledning.
Tilpasset værktøjslinje for hurtig adgang → Flere kommandoer → Tilpas farvebånd → Udvikler → OK
Konklusion
Vi har gennemgået tre forskellige tilgange til at køre VBA for hver celle i et område. Du er meget velkommen til at kommentere, hvis du har spørgsmål eller forespørgsler. Du kan også tjekke vores andre artikler relateret til Excel-opgaverne!