Loops og VBA går sammen, og med en god grunn også. Når du arbeider med Microsoft Office-objekter som arbeidsbøker, regneark og områder, kan løkker hjelpe deg med å veksle mellom hver av dem relativt enkelt.
Mens mer eller mindre alle VBA-løkkene fungerer bra med objekter, er 'for hver'-løkken et av de beste alternativene for å jobbe med objektsamlinger. Hvis du er ny på Excel VBA og ønsker å mestre for hver løkke, kan du raskt lære av noen av disse eksemplene. Her er alt du trenger å vite om denne typiske løkken.
MAKEUSE AV DAGENS VIDEO RULL FOR Å FORTSETTE MED INNHOLD
For hver løkkes syntaks
Syntaksen for hver loop er ganske lik den vanlige for loop i Excel VBA. Her er syntaksen:
finne kontoer knyttet til e -post gratis
For each variable_name in object_collection
[statement]
[statement]
[statement]
Next variable_name
Løkken starter med nøkkelordet 'for hver'; du kan bruke et hvilket som helst variabelnavn, etterfulgt av objektsamlingen. Objektet i for hver løkke kan være celler, områder, ark og til og med arbeidsbøker. Slik er skjønnheten i denne løkken; det gir deg fleksibiliteten til å jobbe med forskjellige Excel-samlinger.
Sløyfen går gjennom hver samlingsverdi og lagrer referansen i det definerte variabelnavnet. Etter kjøring utfører VBA de lagrede setningene i løkken og flytter til neste objekt i samlingen (den neste nøkkelord er nyttig her). La oss forstå kodestrukturen med et grunnleggende eksempel.
Slik bruker du for hver sløyfe i Excel VBA
Anta at du vil skrive ut et tall i cellene A1 til A10. Den beste tilnærmingen er å bruke for hver sløyfe med rekkeviddefunksjonen og la koden gjøre det nødvendige. Slik kan du gjøre denne enkle oppgaven:
- Åpne VBA-kodeeditoren ved å trykke Alt + F11 .
- Sett inn en modul ved å klikke på Modul alternativet innenfor Sett inn fanen.
- Lag en underrutine ved å bruke sub()-kommandoen i koderedigeringsmodulvinduet. Sørg for at du tilordner et meningsfullt navn til underrutinen. For dette eksemplet kan du bruke navnet for_hver_løkke .
Nå som det grunnleggende er ute av veien, er det på tide å begynne å skrive koden. I underrutinen skriver du inn følgende kommandoer:
Dim cell as range
For each cell in Sheets("Sheet1").Range("A1:A10")
cell.value = 10
Next cell
Når koden kjøres, vil c variabel vil lagre verdien til A1. Deretter, når den går videre til setningen i løkken, evaluerer den kommandoen og legger inn en verdi på 10 i den definerte cellen, dvs. celle A1.
Til slutt, når den flytter til neste nøkkelord, flytter den til neste verdi, dvs. celle A2. Sløyfen løper til den når celle A10. Dette er den endelige utgangen:
Bruke sløyfen med objekter: celler, ark og arbeidsbøker
Excel har tre hovedobjekttyper som du jobber med regelmessig. Dette er celler, ark og arbeidsbøker. Slik kan du bruke løkken med alle tre objekttypene.
Arbeide med celler og løkker sammen
Anta at du vil legge til en verdi og noen formateringsbetingelser til en rekke celler i Ark1. Som et første trinn må du definere betingelsene i loopen, etterfulgt av formateringskommandoene.
bruk av harddisk på 100 windows 10
Skriv inn følgende kode i en underrutine.
Sub for_each_loop()
Dim c As Range
For Each c In Sheets("Sheet1").Range("A1:A10")
With c
.Value = 10
.Font.Color = vbRed
.Font.Bold = True
.Font.Strikethrough = True
End With
Next c
End Sub
De med funksjonen er nyttig når du utfører flere funksjoner med ett spesifikt objekt. Siden du ønsker å utføre en rekke oppgaver med c-variabelen, kan du kombinere dem alle ved å bruke en with..end with function.
Sløyfen likestiller cs verdi med hver celleverdi og legger inn verdien som 10. I tillegg endrer den cellens farge til rød, markerer verdien med fet skrift og slår den gjennom. Når den har fullført alle trinnene, går den til neste definerte verdi i området.
lag et iso -bilde fra operativsystemet Windows 10
Bruke løkken til å kontrollere ark
I likhet med eksemplet ovenfor kan du bruke for hver sløyfe for å kontrollere ark. Hva med å endre navnet på Sheet1 til Sheet3 ved å bruke VBA?
Du kan bruke følgende kode for å gi nytt navn til et eksisterende regneark i Excel ved å bruke VBA:
Sub for_each_loop_sheets()
For Each sht In ThisWorkbook.Sheets
If sht.Name = "Sheet1" Then
sht.Name = "Sheet3"
End If
Next sht
End Sub
Koden går gjennom hvert ark i arbeidsboken og kontrollerer navnet på hvert ark. Hvis den støter på navnet Ark1, endres det til Ark3. Den går gjennom de resterende arkene, hvis noen, i arbeidsboken. Når kodeutførelsen når det siste arket, går den ut av løkken og underrutinen.
Blant noen andre vanlige bruksområder kan du slå sammen flere regneark ved hjelp av VBA og oppdater innholdet i et enkelt ark ved hjelp av loops.
Gå gjennom arbeidsbøker med løkken
Til slutt kan du bruke for hver sløyfe til å bla gjennom forskjellige arbeidsbøker og utføre spesifikke oppgaver. La oss demonstrere denne funksjonen med et eksempel.
Du kan bruke VBA-kommandoer til å legge til tre nye arbeidsbøker og lukke alle de åpne sammen. Slik kan du gjøre det:
Sub loop_wrkbook()
Dim wrkbook as workbook
Workbooks.Add
Workbooks.Add
Workbooks.Add
For Each wrkbook In Workbooks
wrkbook.
Next wrkbook
End Sub