VBA for hver celle i området i Excel (3 metoder)

  • Del Dette
Hugh West

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.xlsx

3 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!

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.