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.

  • ๐ŸŽฏ Definitie: Het bereikobject verwijst naar een enkele cel, een rij, een kolom, een selectie of een 3D-bereik.
  • ๐Ÿงฌ Hiรซrarchie: Een volledig gekwalificeerde referentie leest de volgende stappen: Toepassing, Werkboeken, Werkbladen, en vervolgens Bereik.
  • ???? ๏ธ Eigenschappen en methoden: Een eigenschap slaat informatie over het object op, en een methode voert een actie uit, zoals selecteren of samenvoegen.
  • ๐Ÿ”ข Celeigenschappen: Cells(Row, Column) adresseert een cel aan de hand van een nummer, wat geschikt is voor een programmeerlus.
  • โœ๏ธ Lezen en schrijven: De eigenschap Value haalt de inhoud van een cel op en schrijft nieuwe inhoud terug.
  • โ†”๏ธ Offset-eigenschap: Offset verplaatst een referentie een vast aantal rijen en kolommen vanaf de startcel.

Excel VBA-bereikobject

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

  1. Het zoekwoord 'Bereik'.
  2. Haakjes na het trefwoord
  3. Relevant celbereik
  4. 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.

Eรฉn cel met behulp van de eigenschap Worksheet.Range

Stap 2) In deze stap,

  • Klik op Eรฉn cel met behulp van de eigenschap Worksheet.Range 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.

Eรฉn cel met behulp van de eigenschap Worksheet.Range

Stap 3) In de volgende stap,

  • Klik op de Macro-knop Eรฉn cel met behulp van de eigenschap Worksheet.Range vanuit het bovenste menu. Het onderstaande venster wordt geopend.
  • In dit venster klikt u op de knop 'Bewerken'.

Eรฉn cel met behulp van de eigenschap Worksheet.Range

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

Eรฉn cel met behulp van de eigenschap Worksheet.Range

Stap 5) Sla nu het bestand op Eรฉn cel met behulp van de eigenschap Worksheet.Range en voer het programma uit zoals hieronder weergegeven.

Eรฉn cel met behulp van de eigenschap Worksheet.Range

Stap 6) U zult zien dat cel โ€œA1โ€ is geselecteerd na uitvoering van het programma.

Eรฉn cel met behulp van de eigenschap Worksheet.Range

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

Veelgestelde vragen

Gebruik Cells(Rows.Count, 1).End(xlUp).Row. Deze functie begint onderaan kolom A en springt omhoog naar de laatste cel met gegevens, wat betrouwbaarder is dan UsedRange nadat rijen zijn verwijderd.

Elke lees- of schrijfbewerking vindt plaats tussen VBA en Excel. Laad het bereik in een array met รฉรฉn enkele toewijzing, verwerk de array in het geheugen en schrijf het vervolgens in รฉรฉn instructie terug. Het uitschakelen van ScreenUpdating helpt ook.

Meestal gaat het om een โ€‹โ€‹ongeldig adres, een bladnaam die niet bestaat, of een poging om een โ€‹โ€‹bereik te selecteren op een werkblad dat niet actief is. Voeg het juiste blad toe aan de verwijzing of activeer het werkblad eerst.

Ja. Plak de opgenomen code en een AI-assistent vervangt elk Select- en Selection-paar door een directe, volledig gekwalificeerde Range-referentie. Voer beide versies uit op een kopie en vergelijk het blad voordat u de definitieve versie gebruikt.ping de verandering.

Ja. Beschrijf het doel, bijvoorbeeld elke ingevulde rij in de kolommen A tot en met D op het gegevensblad, en een AI-assistent geeft de bijbehorende bereikuitdrukking terug. Controleer deze aan de hand van een kleine steekproef voordat u deze op echte gegevens toepast.

Vat dit bericht samen met: