Hoe gebruik je een cel als variabele in vba?
Als u een bereik of een enkele cel als variabele wilt gebruiken, moet u die variabele eerst declareren met het gegevenstype bereik. Zodra u dat heeft gedaan, moet u een bereik van één cel tot deze variabele opgeven met behulp van het bereikobject. Dit geeft u ook toegang tot alle eigenschappen en methoden die u met een bereik kunt gebruiken.
- Gebruik het trefwoord “Dim” en voer de naam van de variabele in.
- Declareer het trefwoord als Range .
- Typ de naam van de variabele.
- Geef het bereik op dat u aan de variabele wilt toewijzen.
Stel de selectie in op bereikvariabele
U kunt ook het geselecteerde bereik voor een variabele gebruiken en die variabele vervolgens gebruiken om toegang te krijgen tot eigenschappen en methoden. Beschouw de volgende code.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Maar er is één ding waar u op moet letten: wanneer u een ander object dan een bereik selecteert , geeft VBA u een foutmelding.
Maar het is ook een dynamische methode waarbij je het bereik niet steeds opnieuw hoeft te veranderen.
Kopieer een bereik met behulp van een variabele
Nadat u een variabele als bereik heeft gedeclareerd , kunt u dat bereik ook kopiëren met behulp van die variabelenaam. Stel dat u het bereik A1:A10 als rng-variabele hebt gedeclareerd (voorbeeld hierboven), dan kunt u dit kopiëren met de volgende code.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
De bereikvariabele gebruiken in een functie
U kunt ook een bereikvariabele gebruiken om naar een bereik in een functie te verwijzen wanneer u een macro schrijft. Beschouw de volgende code.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
Er zijn waarden nodig in het bereik A1:A10 en aangezien je de variabele “rng” moet gebruiken, hebben we de variabele in de maximale waarde gebruikt om deze uit te voeren.
Gerelateerd: WorksheetFunction gebruiken in VBA
Tel het aantal rijen en kolommen
Zoals ik al eerder zei: zodra u een variabele als bereik specificeert, krijgt u ook alle eigenschappen en toegangsmethoden. Stel je voor dat je rijen en kolommen wilt tellen. Hier is de code die gebruikt kan worden.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
Wanneer u deze code uitvoert, wordt er een bericht weergegeven met het aantal rijen en kolommen in het bereik dat u in de variabele hebt opgegeven.
Definitie van werkblad met bereik
In alle bovenstaande voorbeelden hebben we het bereik gebruikt zonder het werkblad te vermelden, dus wanneer u deze code uitvoert, verwijst VBA altijd naar het bereik in het actieve blad. Maar als u naar een specifiek werkblad wilt verwijzen, moet u het werkbladobject met het bereik gebruiken.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")