Hoe de eigenschap usedrange in vba te gebruiken?
In VBA vertegenwoordigt de eigenschap UsedRange het bereik van een werkblad dat gegevens bevat. Het gebruikte bereik begint vanaf de eerste cel in het werkblad waar u een waarde hebt, tot de laatste cel waar u een waarde hebt. Net als in het volgende voorbeeld, waarbij u het bereik van A1 tot C11 gebruikte.
Opmerking: De eigenschap UsedRange is een alleen-lezen eigenschap .
Schrijf code met UsedRange
Gebruik de volgende code.
- Eerst moet u het spreadsheet opgeven.
- Voer vervolgens een punt (.) in en voer “UsedRange” in.
- Gebruik daarna de eigenschap of methode die u wilt gebruiken.
- Voer aan het einde de code uit.
Sub vba_used_range() ActiveSheet.UsedRange.Clear End Sub
De bovenstaande code wist alles uit het gebruikte bereik van het actieve blad.
Kopieer het gebruikte bereik
Gebruik de volgende code om de volledige UsedRange te kopiëren.
Sub vba_used_range() ActiveSheet.UsedRange.Copy End Sub
Tel rijen en kolommen in het gebruikte bereik
Er is een count-eigenschap die u kunt gebruiken om de rijen en kolommen van het gebruikte bereik te tellen.
MsgBox ActiveSheet.UsedRange.Rows.Count MsgBox ActiveSheet.UsedRange.Columns.Count
De twee regels code hierboven geven een berichtvenster weer met het aantal rijen en kolommen dat u in het gebruikte bereik heeft.
Activeer de laatste cel in het gebruikte bereik
U kunt ook de laatste cel in het gebruikte bereik inschakelen (dit zou de laatste cel zijn die in het werkblad wordt gebruikt). Beschouw de volgende code.
Sub vba_used_range() Dim iCol As Long Dim iRow As Long iRow = ActiveSheet.UsedRange.Rows.Count iCol = ActiveSheet.UsedRange.Columns.Count ActiveSheet.UsedRange.Select Selection.Cells(iRow, iCol).Select End Sub
Deze code neemt het aantal rijen en kolommen met behulp van de eigenschap UsedRange en gebruikt deze getallen vervolgens om de laatste cel in het gebruikte bereik te selecteren.
Raadpleeg UsedRange in een ander werkblad
Als u probeert te verwijzen naar het bereik dat wordt gebruikt in een ander werkblad dan het actieve blad, zal VBA een dergelijke fout weergeven.
Het werkblad waarnaar u verwijst moet dus geactiveerd zijn (alleen dan kunt u de eigenschap UsedRange gebruiken).
Sub vba_used_range() Worksheets("Sheet4").Activate Worksheets("Sheet4").UsedRange.Select End Sub
Dit betekent dat u niet kunt verwijzen naar het bereik dat in een gesloten werkmap wordt gebruikt. Maar u kunt eerst een werkmap openen en vervolgens het werkblad inschakelen om de eigenschap UsedRange te gebruiken.
Haal het adres op van het gebruikte bereik
Gebruik de volgende coderegel om het adres van het gebruikte bereik op te halen.
Sub vba_used_range() MsgBox ActiveSheet.UsedRange.Address End Sub
Tel lege cellen in het gebruikte bereik
De volgende code gebruikt FOR (For Each)-lussen en doorloopt alle cellen in het gebruikte bereik en telt lege cellen.
Sub vba_used_range() Dim iCell As Range Dim iRange As Range Dim c As Long Dim i As Long Set iRange = ActiveSheet.UsedRange For Each iCell In ActiveSheet.UsedRange c = c + 1 If IsEmpty(iCell) = True Then i = i + 1 End If Next iCell MsgBox "There are total " & c & _ " cell(s) in the range, and out of those " & _ i & " cell(s) are empty." End Sub
Wanneer u deze code uitvoert, wordt er een berichtvenster weergegeven met het totale aantal cellen en het aantal lege cellen.