VBA-selectiebereik

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 begint met het uitvoeren van de codes, moet u vrijwel de meeste tijd met een reeks cellen werken. Het is dus belangrijk om te begrijpen hoe u met een reeks cellen moet werken en een van die concepten 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 het 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?

U kunt deze VBA Selection Range Excel-sjabloon hier downloaden - VBA Selection Range Excel-sjabloon

Voorbeeld 1

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

Code:

Na het vermelden van de cel die we nodig hebben, moeten we put punt selecteren 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 de cel A1 in het werkblad "Gegevensblad" wilt selecteren, specificeer dan eerst het werkblad 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, waarna we kunnen 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") Waarde = "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 voor een voorbeeld 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 eigenschap "selectie" 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, krijgen we voor alle geselecteerde cellen de waarde "Hallo VBA".

Het simpele verschil tussen het specificeren van een 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 invoegen in alle geselecteerde cellen.

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.