VBA-selectiebereik - Hoe selecteer je een bereik in Excel VBA?

Excel VBA-selectiebereik

Nadat de basis met VBA is gevuld, is het belangrijk om te begrijpen hoe u met een reeks cellen in het werkblad kunt werken. Zodra u vrijwel de meeste tijd begint met het uitvoeren van de codes, moet u met een reeks cellen werken, dus het is belangrijk om te begrijpen hoe u met een reeks cellen moet werken, en een zo'n concept is VBA "Selectie van bereik". In dit artikel laten we u zien hoe u kunt werken met het "Selectiebereik" in Excel VBA.

Selectie en bereik zijn twee verschillende onderwerpen, maar als we zeggen dat we het bereik of de selectie van bereik moeten selecteren, is het een enkel concept. RANGE is een object, "Selectie" is een eigenschap en "Select" is een methode. Mensen hebben de neiging om met deze termen te verwarren. Het is belangrijk om de verschillen in het algemeen te kennen.

Hoe selecteer je een bereik in Excel VBA?

Voorbeeld 1

Stel dat u dan de cel A1 in het werkblad wilt selecteren. Eerst moeten we het celadres specificeren met behulp van een RANGE-object zoals hieronder.

Code:

Nadat u de cel hebt genoemd die we moeten selecteren, plaatst u een punt om de IntelliSense-lijst te zien, die is gekoppeld aan het RANGE-object.

Vorm deze verscheidenheid aan lijsten, kiest de "Select" -methode.

Code:

Sub Range_Example1 () Range ("A1"). Selecteer End Sub

Nu selecteert deze code de cel A1 in het actieve werkblad.

Als u de cel in de verschillende werkbladen wilt selecteren, moeten we eerst het werkblad met de naam specificeren. Om het werkblad te specificeren, moeten we het "WORKSHEET" -object gebruiken en de werkbladnaam tussen dubbele aanhalingstekens invoeren.

Als u bijvoorbeeld cel A1 in het werkblad "Gegevensblad" wilt selecteren, geeft u eerst het werkblad op zoals hieronder.

Code:

Sub Range_Example1 () Werkbladen ("Data Sheet") End Sub

Ga dan verder met de code om te specificeren wat we in dit blad moeten doen. In "Gegevensblad" moeten we de cel A1 selecteren, dus de code is BEREIK ("A1").

Code:

Sub Range_Example1 () Werkbladen ("Data Sheet"). Range ("A1"). Selecteer End Sub

Wanneer u deze code probeert uit te voeren, krijgen we de onderstaande foutmelding.

De reden hiervoor is "we kunnen het bereikobject en de methode niet rechtstreeks aan het werkbladobject leveren."

Eerst moeten we het VBA-werkblad selecteren of activeren, en dan kunnen we doen wat we wilden doen.

Code:

Sub Range_Example1 () Worksheets ("Data Sheet"). Activeer Range ("A1"). Selecteer End Sub

Dit selecteert nu de cel A1 in het werkblad "Gegevensblad".

Voorbeeld # 2 - Werken met het huidige geselecteerde bereik

Selecteren is iets anders en werken met een reeds geselecteerd celbereik is anders. Stel dat u een waarde "Hallo VBA" wilt invoegen in cel A1, dan kunnen we dit op twee manieren doen.

Ten eerste kunnen we de VBA-code direct doorgeven als RANGE ("A1"). Value = "Hallo, VBA."

Code:

Sub Range_Example1 () Bereik ("A1"). Value = "Hallo VBA" End Sub

Wat deze code zal doen, is dat dit gewoon de waarde "Hallo VBA" invoegt in cel A1, ongeacht welke cel momenteel is geselecteerd.

Bekijk het bovenstaande resultaat van de code. Wanneer we deze code uitvoeren, heeft deze de waarde "Hallo VBA" ingevoegd, ook al is de momenteel geselecteerde cel B2.

Ten tweede kunnen we de waarde in de cel invoegen met behulp van de "Selectie" -eigenschap. Hiervoor moeten we eerst de cel handmatig selecteren en de code uitvoeren.

Code:

Sub Range_Example1 () Selection.Value = "Hallo VBA" End Sub

Wat deze code zal doen, is dat dit de waarde "Hallo VBA" invoegt in de momenteel geselecteerde cel. Bekijk bijvoorbeeld het onderstaande uitvoeringsvoorbeeld.

Toen ik de code uitvoerde, was mijn huidige geselecteerde cel B2 en onze code voegde dezelfde waarde toe aan de momenteel geselecteerde cel.

Nu zal ik de cel B3 selecteren en uitvoeren, ook daar krijgen we dezelfde waarde.

Nog een ding dat we kunnen doen met de "selectie" -eigenschap is dat we ook waarde kunnen invoegen in meer dan één cel. Ik zal nu bijvoorbeeld het celbereik van A1 tot B5 selecteren.

Als ik nu de code uitvoer, voor alle geselecteerde cellen, krijgen we de waarde als 'Hallo VBA'.

Het simpele verschil tussen het specificeren van het celadres door het RANGE-object en de Selectie-eigenschap is dus dat in Range-objectcode waarde wordt ingevoegd in de cellen die expliciet zijn opgegeven.

Maar in het Selectie-object maakt het niet uit in welke cel u zich bevindt. Het zal de genoemde waarde in alle geselecteerde cellen invoegen.

Dingen om hier te onthouden

  • We kunnen de selectiemethode niet rechtstreeks leveren onder Selectie-eigenschap.
  • RANGE is een object en selectie is eigendom.
  • In plaats van bereik kunnen we de eigenschap CELLS gebruiken.

Interessante artikelen...