Excel VBA-bereikobject
โก Slimme samenvatting
Het Excel VBA-bereikobject vertegenwoordigt รฉรฉn cel of een groep cellen op een werkblad. Deze pagina legt de objecthiรซrarchie uit, de eigenschappen Bereik en Cellen, het selecteren en verwijzen naar cellen, het lezen en schrijven van waarden en de eigenschap Verschuiving.

Wat is VBA-bereik?
Het VBA-bereikobject vertegenwoordigt een cel of meerdere cellen in uw Excel-werkblad. Het is het belangrijkste object van Excel VBA. Door het Excel VBA-bereikobject te gebruiken, kunt u verwijzen naar:
- Een enkele cel
- Een rij of een kolom met cellen
- Een selectie van cellen
- Een 3D-bereik
Zoals we in onze vorige tutorial hebben besproken, wordt VBA gebruikt om op te nemen en uit te voeren. MacroMaar hoe bepaalt VBA welke gegevens op het werkblad bewerkt moeten worden? Daarvoor zijn VBA-bereikobjecten handig.
Inleiding tot het verwijzen naar objecten in VBA
Verwijzen naar het VBA-bereikobject van Excel en de objectkwalificatie.
- Objectkwalificatie: Dit wordt gebruikt om naar het object te verwijzen. Het specificeert de werkmap of het werkblad waarnaar u verwijst.
Om deze celwaarden te manipuleren, Aanbod en Methoden worden gebruikt.
- Eigendom: Een eigenschap slaat informatie over het object op.
- Werkwijze: Een methode is een actie van het object dat deze zal uitvoeren. Bereikobject kan acties uitvoeren zoals geselecteerd, gekopieerd, gewist, gesorteerd, enz.
VBA volgt een objecthiรซrarchie om naar een object in Excel te verwijzen. Je moet de onderstaande structuur volgen. Onthoud dat de punt (..) hier het object op elk van de verschillende niveaus verbindt.
Toepassing.Werkboeken.Werkbladen.Bereik
Die hiรซrarchie kan via twee verschillende eigenschappen worden bereikt, waarbij de eigenschap 'Bereik' het meest wordt gebruikt.
Hoe u naar Excel VBA Range Object kunt verwijzen met behulp van de eigenschap Range
De eigenschap Range kan op twee verschillende typen objecten worden toegepast.
- Werkbladobjecten
- Bereikobjecten
Syntaxis voor bereikeigenschap
- Het zoekwoord 'Bereik'.
- Haakjes na het trefwoord
- Relevant celbereik
- Offerte (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
Wanneer u naar het Range-object verwijst, zoals hierboven weergegeven, wordt ernaar verwezen als volledig gekwalificeerde referentieJe hebt Excel precies verteld welk bereik je wilt, welk blad en in welk werkblad.
Voorbeeld: BerichtBox Werkbladen(โBlad1โ).Bereik(โA1โ).Waarde
Met behulp van de eigenschap Range kunt u veel taken uitvoeren, zoals:
- Verwijs naar een enkele cel met behulp van de bereikeigenschap
- Verwijs naar een enkele cel met behulp van de eigenschap Worksheet.Range
- Verwijs naar een volledige rij of kolom
- Raadpleeg samengevoegde cellen met behulp van de eigenschap Worksheet.Range en nog veel meer
Als zodanig zal het te lang duren om alle scenario's voor bereikeigendom te behandelen. Voor de hierboven genoemde scenario's zullen we slechts รฉรฉn voorbeeld demonstreren. Verwijs naar een enkele cel met behulp van de bereikeigenschap.
Verwijs naar een enkele cel met behulp van de eigenschap Worksheet.Range
Om naar een specifieke cel te verwijzen, geeft u het adres ervan door aan de eigenschap Range als een tekstreeks.
Syntaxis is eenvoudig "Bereik ("Cel")".
Hier gebruiken we de opdracht ".Select" om de enkele cel van het blad te selecteren.
Stap 1) Open in deze stap uw Excel-bestand.
Stap 2) In deze stap,
- Klik op
knop.
- Er wordt een venster geopend.
- Voer hier uw programmanaam in en klik op de knop 'OK'.
- U gaat naar het Excel-hoofdbestand. Klik in het bovenste menu op de opnameknop 'stop' om de opname van Macro te stoppen.
Stap 3) In de volgende stap,
- Klik op de Macro-knop
vanuit het bovenste menu. Het onderstaande venster wordt geopend.
- In dit venster klikt u op de knop 'Bewerken'.
Stap 4) De bovenstaande stap opent de VBA-code-editor voor het bestand met de naam "Single Cell Range". Voer de onderstaande code in om bereik "A1" in het Excel-blad te selecteren.
Sub SingleCellRange() Range("A1").Select End Sub
Stap 5) Sla nu het bestand op en voer het programma uit zoals hieronder weergegeven.
Stap 6) U zult zien dat cel โA1โ is geselecteerd na uitvoering van het programma.
Je kunt ook een cel selecteren met een specifieke naam. Als je bijvoorbeeld wilt zoeken naar een cel met de naam "Guru99 - VBA-zelfstudieโ. U moet de onderstaande opdracht uitvoeren. Hiermee wordt de cel met die naam geselecteerd.
Bereik("Guru99- VBA-zelfstudieโ).Selecteer
Om hier een ander bereikobject toe te passen, is het codevoorbeeld.
| Bereik voor het selecteren van cellen in Excel | Bereik verklaard |
|---|---|
| Voor enkele rij | Bereik(โ1:1โ) |
| Voor enkele kolom | Bereik (โA:Aโ) |
| Voor aangrenzende cellen | Bereik(โA1:C5โ) |
| Voor niet-aangrenzende cellen | Bereik(โA1:C5, F1:F5โ) |
| Voor snijpunt van twee bereiken | Bereik(โA1:C5 F1:F5โ) (Denk eraan dat er voor doorsnedecellen geen komma-operator is) |
| Cel samenvoegen | Bereik(โA1:C5โ) (Om cellen samen te voegen, gebruikt u de opdracht โsamenvoegenโ) |
Het selecteren van een cel is slechts de eerste stap. In de praktijk leest een macro de inhoud van een cel en schrijft er een nieuwe waarde terug.
Hoe lees en schrijf je waarden met het Range-object?
Vrijwel elke macro die een werkblad bewerkt, doet een van de volgende twee dingen: hij leest een waarde uit een cel of hij schrijft er een in. Beide acties verlopen via de eigenschap Waarde en voor geen van beide hoeft de cel eerst geselecteerd te zijn.
Sub ReadAndWrite() Dim Price As Double Dim Qty As Long ' Read two values out of the sheet Price = Range("B1").Value Qty = Range("B2").Value ' Write the calculated result back Range("B3").Value = Price * Qty ' Fill a whole block in one statement Range("D1:D10").Value = "Guru99" ' Clear only the contents, keeping the formatting Range("F1:F10").ClearContents End Sub
Vier punten maken dit patroon betrouwbaar.
- Selectie is niet vereist: schrijf- Bereik(โB3โ).Waarde = 10 is sneller en veiliger dan eerst de cel te selecteren. Opgenomen macro's zitten vol met .Select omdat de recorder muisacties nabootst, niet omdat de code dat nodig heeft.
- Waarde versus tekst: .Value retourneert de onderliggende gegevens, terwijl .Text de op het scherm weergegeven opgemaakte tekenreeks retourneert, die kan worden afgekapt op basis van de kolombreedte. Lees .Value in berekeningen.
- Hele blokken op รฉรฉn regel: Door een bereik met meerdere cellen toe te wijzen, worden alle cellen tegelijk gevuld, wat veel sneller is dan het handmatig toewijzen van een bereik met meerdere cellen.ping.
- Maak het juiste ding duidelijk: ClearContents verwijdert alleen de waarden, Clear verwijdert ook de opmaak en Delete verwijdert de cellen en verschuift de cellen eromheen.
Een bereik verwijst naar een cel met de letter en het nummer. Een tweede eigenschap verwijst naar dezelfde cel met twee getallen.
Celeigenschap
Vergelijkbaar met het bereik, in VBA Je kunt ook de "Cell Property" gebruiken. Het enige verschil is dat deze een "item"-eigenschap heeft waarmee je naar de cellen in je spreadsheet kunt verwijzen. De Cell Property is handig in een programmeerlus.
Bijvoorbeeld
Cells.item(Row, Column). Beide onderstaande regels verwijzen naar cel A1.
- Cellen.item(1,1) OF
- Cellen.item(1,โAโ)
Verschil tussen bereik en cellen in VBA
Range en Cells bereiken dezelfde werkbladcellen via verschillende routes, en door de juiste keuze te maken wordt de code korter en beter leesbaar.
| Punt van verschil | Verkrijgbaarheid: | Cellen |
|---|---|---|
| Adresformaat | Een tekstreeks, bereik ("A1") | Twee getallen, Cellen(1, 1) |
| Meerdere cellen | Ja, bereik (โA1:C5โ) | Eรฉn cel tegelijk |
| Binnen een lus | Vereist tekenreeksconcatenatie | Het rijnummer kan de lussteller zijn. |
| leesbaarheid | Komt overeen met het adres dat u in Excel ziet. | Kolom 27 is moeilijker voor te stellen dan AA. |
| Gecombineerd gebruik | Range(Cells(1, 1), Cells(5, 3)) bouwt A1:C5 op uit getallen | |
De vuistregel is om Bereik te gebruiken voor een vast adres dat je in รฉรฉn oogopslag kunt aflezen, en Cellen wanneer een rij- of kolomnummer tijdens de uitvoering wordt berekend.
Bereik Offset-eigenschap
De eigenschap Range offset selecteert rijen/kolommen weg van de oorspronkelijke positie. Op basis van het aangegeven bereik worden cellen geselecteerd. Zie voorbeeld hieronder.
Bijvoorbeeld
Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select
Het resultaat hiervan is cel B2. De eigenschap 'offset' verplaatst cel A1 รฉรฉn kolom en รฉรฉn rij. U kunt de waarde van 'RowOffset' / 'ColumnOffset' naar behoefte aanpassen. U kunt een negatieve waarde (-1) gebruiken om cellen naar achteren te verplaatsen.
Download Excel met bovenstaande code
Download het bovenstaande Excel-bestand. Code






