Pagina 10 van 21VORIGEVOLGENDE

Lussen in Excel-macro's

Een Do...Loop-macro

Een Do…Loop-macro telt een gegevensbereik en gaat door met tellen zolang er geen lege rij wordt gevonden.

Stel dat u het aantal rijen wilt tellen binnen een gegevensbereik dat soms klein en soms bijzonder omvangrijk kan zijn. In een dergelijk geval kunt u een Do…Loop-macro gebruiken. Dit type lus herhaalt een bewerking zo vaak als dat nodig is. De macro telt de rijen binnen een bereik, ongeacht het desbetreffende aantal rijen. U kunt eveneens een Do…Loop-macro gebruiken als u een bewerking wilt uitvoeren op twee gegevensbereiken met een verschillend aantal rijen. De lus wordt voor beide bereiken zo vaak als dat nodig is, uitgevoerd. U kunt de lus zo instellen dat het uitvoeren wordt beëindigd zodra er een specifiek item wordt gevonden, zoals een lege cel of een bepaalde tekst.

Gebruik de voorwaarde While of de voorwaarde Until om in te stellen wanneer een Do…Loop-macro moet stoppen. De lusmacro wordt uitgevoerd zolang als iets waar is of totdat iets waar is. Als u een lusmacro wilt beëindigen wanneer er in de eerste kolom een lege cel wordt gevonden, moet u dus de voorwaarde While gebruiken, zoals hierna is weergegeven:

Do While Cells(x,1).Value not equal ""

De voorwaarde While die hier wordt gebruikt, garandeert dat de lusmacro wordt uitgevoerd, zolang als de cel waarop deze wordt toegepast niet leeg is. Het teken x staat voor de rij waaraan wordt gewerkt en (x,1) staat voor de eerste cel in de desbetreffende rij. De tekens <> staan wanneer deze samen worden gebruikt voor is niet gelijk aan. De aanhalingstekens waar niets tussen staat, geven een lege cel aan.

Als u wilt dat de lus wordt uitgevoerd totdat er een specifiek getal (bijvoorbeeld 365) wordt gevonden, gebruikt u de voorwaarde Until. Waar u ook voor kiest, beide voorwaarden bieden u de mogelijkheid om in te stellen wanneer de lusmacro moet worden beëindigd.

Pagina 10 van 21VORIGEVOLGENDE