Променлива в обхвата на Excel VBA
Променливите са сърцето и душата на всеки голям VBA проект, тъй като променливите са сърце и душа, тогава видът на данните, който им приписваме, също е много важен фактор в това отношение. В многото си по-ранни статии сме обсъждали много пъти за променливите и тяхното значение за типа данни. Една такава променлива и тип данни е „Променлива на обхвата“ в тази специална специална статия. Ще дадем пълно ръководство за „Променлива на обхвата“ в Excel VBA.
Какво е променлива на диапазона в Excel VBA?
Подобно на всяка друга променлива Обхват във VBA, променливата също е променлива, но това е „Променлива на обекта“, която използваме, за да зададем референцията на конкретния диапазон от клетки.
Както всяка друга променлива, ние можем да дадем всяко име на променливата, но типът данни, който им присвояваме, трябва да бъде „Обхват“. След като типът данни е присвоен на променливата, тя се превръща в „Променлива на обекта“ и за разлика от друга променлива, не можем да започнем да използваме променливата, преди да зададем референцията на обектите в случай на променливи на обекта.
И така, след като декларираме променливата, трябва да използваме ключовата дума “SET”, за да зададем референтната стойност на обекта, т.е. в този случай Range object.
Добре, сега ще видим на практика някои от примерите за променливи на обхвата на Excel VBA.

Примери за променлива на обхвата в Excel VBA
Например, предположим, че искате да изберете диапазона от клетки от A2 до B10 за изображението на екрана по-долу.

За да изберете този споменат диапазон от клетки, всички тези, докато имаме обект RANGE, а вътре в обекта диапазон, споменахме адреса на клетката в двойни кавички.
Код:
Sub Range_Variable_Example () Range ("A2: B10") End Sub

След като обхватът на клетките бъде споменат с помощта на RANGE обект, ако поставите точка, ще видим всички свойства и методи, свързани с този обект на диапазон.
Код:
Sub Range_Variable_Example () Диапазон ("A2: B10"). Крайна под

Тъй като трябва да селектираме споменатите клетки просто, изберете метода „Select“ от списъка IntelliSense.
Код:
Sub Range_Variable_Example () Range ("A2: B10"). Изберете End Sub

Изпълнете кода и той ще избере споменатите клетки.

Това е очевидно, нали, но представете си сценария за използване на един и същ обхват в дългия проект на VBA, да кажем сто пъти, като написването на един и същ код на "Обхват (" A2: A10 ")" 100 пъти ще отнеме известно време, но вместо това ще декларираме променливата и ще присвоим типа данни като обект „Обхват“.
Добре, нека дадем вашето собствено име на променлива и присвоим типа на данните като „Обхват“.

Освен „Обектни променливи“, можем да започнем да използваме променливите по тяхното име, но в случая на „Променливи на обекта“ трябва да зададем референцията.
Например, в този случай обектът ни с променлива (Rng) е диапазон, така че трябва да зададем препратка към думата „Rng“, към която ще се отнася. За да зададем референцията, трябва да използваме ключовата дума „Set“.

Сега променливата „Rng“ се отнася до диапазона от клетки от А2 до В10. Вместо да пишем „Обхват („ A2: B10 “)) всеки път, можем просто да напишем думата „ Rng “.
В следващия ред споменете името на променливата „Rng“ и поставете точка, за да видите магията.

Както можете да видите по-горе, можем да видим всички свойства и методи на обекти от диапазона като предишния.
Направете променливата динамична
Сега знаем как да зададем препратката към диапазона от клетки, но след като споменем обхвата на клетките, той се придържа само към тези клетки. Всяко добавяне или изтриване на клетки няма да повлияе на тези клетки.
Така че, намирането на новия диапазон от клетки след всяко добавяне или изтриване на клетки прави променливата динамична в природата. Това е възможно чрез намиране на последния използван ред и колона.
За да намерим последния използван ред и колона, трябва да дефинираме още две променливи.
Код:
Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding End Sub

Now below code will find the last used row & column before we set the reference to a range object variable.
Code:
Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column End Sub

Now open the “Set” keyword statement.
Code:
Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = End Sub

Unlike the previous method, we use VBA CELLS properties this time.
Code:
Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1) End Sub

I have mentioned Cells(1,1), i.e., this refers to the first cell in the active sheet, but we need the data range reference, so use the “RESIZE” property and mention “last used row & column” variables.
Code:
Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1).Resize(LR, LC) End Sub

Сега това ще зададе последната препратка към променливата на обекта на диапазона „Rng.“ След това споменете името на променливата и използвайте метода “Select”.
Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Последен ред за разбиране на Dim LC As Long' LC = Последна колона за разбиране LR = Клетки (Rows.Count, 1). End (xlUp) .Red LC = Cells (1, колони
Сега ще добавя още няколко реда към данните си.

Добавих три допълнителни реда данни. Ако стартирам кода сега, той трябва да избере най-новия диапазон от данни.

Неща за запомняне
- Променливата на обхвата в Excel VBA е обектна променлива.
- Винаги, когато използваме обектната променлива, трябва да използваме ключовата дума „Set“ и да зададем препратката към обекта към променливата.
- Без да зададем референцията, не можем да използваме обектна променлива.