Преоразмеряване на VBA | Как да използвам Resize Property в Excel VBA? (С примери)

Преоразмеряване на Excel VBA

Преоразмеряването е свойство, налично във VBA, за да променя или преоразмерява диапазона от клетки от активната клетка, ако е необходимо. Например, да предположим, че сте в клетката B5 и от тази клетка, ако искате да изберете 3 реда и две колони, можем да променим размера на диапазон, като използваме свойството RESIZE на VBA.

Синтаксис на свойството за преоразмеряване на VBA

По-долу е синтаксисът на свойството VBA RESIZE.

Обхват (). Преоразмеряване ([Размер на реда], [Размер на колоната])

Първо, трябва да предоставим от коя клетка трябва да преоразмерим с помощта на обекта Range .

След това използвайте свойството за преоразмеряване на Excel VBA и в това свойство трябва да предоставим ограничение на размера на реда и ограничението на размера на колоната . Въз основа на предоставените номера на редове и номера на колони той ще го преоразмери.

Примери за използване на Resize в VBA

По-долу са примерите за използване на преоразмеряване в Excel VBA.

Можете да изтеглите този шаблон на VBA за преоразмеряване на Excel тук - VBA Resize Excel Template

Пример # 1

Да предположим, че имате данни от клетка А1 до В14 и от клетка А1, ако искате да изберете 3 реда надолу и две колони вляво, можем да направим това, като използваме свойството РАЗМЕР в Excel VBA.

По-долу са данните, които използваме за този пример.

И така, първо, трябва да предоставим първата референтна или начална точка на клетката, като използваме обекта RANGE, в този пример началната точка е клетка A1.

Код:

Sub Resize_Example () Диапазон ("A1"). Крайна под

За този диапазон използвайте свойството RESIZE.

Код:

 Sub Resize_Example () Обхват ("A1"). Resize (End Sub 

Първият аргумент на RESIZE е Размер на реда, така че трябва да изберем 3 реда от данните и да предоставим числовата стойност на 3.

Код:

 Sub Resize_Example () Обхват ("A1"). Resize (3, End Sub 

Следващият аргумент е Column Size за това въведете как трябва да изберете колони, аз ще въведа 3 колони.

Код:

 Sub Resize_Example () Обхват ("A1"). Resize (3,3) Край Sub 

След като преоразмеряването приключи, трябва да предоставим това, което трябва да направим с този диапазон. Просто ще избера метода „Избор“, за да започна.

Код:

 Sub Resize_Example () Range ("A1"). Resize (3, 3). Изберете End Sub 

Изпълнете кода и вижте колко реда и колко колони би избрал.

Както можете да видите по-горе от клетката A1, тя е избрала три реда надолу и три колони вдясно.

Пример # 2

Сега погледнете кода по-долу VBA.

В горния код за Row Размер, който се доставя с празна клетка  и за Колона Размер, който се доставя с 3.

Код:

 Sub Resize_Example () Обхват ("A1"). Resize (0, 3). Изберете End Sub 

Изпълнете кода и вижте колко реда и колко колони би избрал.

Както можете да видите, той е избрал само активния ред на клетката, т.е. 1-ви ред и три колони. Това е така, защото за размера на реда сме предоставили празна клетка,  а за размера на колоната - 3 и съответно той е избрал диапазона от данни.

Сега вижте кода по-долу.

Код:

 Sub Resize_Example() Range("A1").Resize(3).Select End Sub 

What this code will do is it will select only three rows including the active cell row but no extra columns.

Example #3

Use Resize To Select Unknown Ranges. Resize is best utilized when you want to select an unknown range of cells. For example, look at the below image of the data range.

It has data all the ways from Column A to Column P and row-wise we have up until the 700th row.

Assume you know your data will keep changing and you want to select the data range every now and then by manually changing the row and column number. However, by using VBA RESIZE property we can do this easily.

Look at the below code.

Code:

 Sub Resize_Example1() Dim LR As Long Dim LC As Long Worksheets("Sales Data").Select LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Cells(1, 1).Resize(LR, LC).Select End Sub 

First I have declared two variables to find the last used row (LR) and last used column (LC).

 Dim LR As Long Dim LC As Long 

Since our data is in the worksheet named “Sales Data” we are choosing this worksheet by using the below code.

Worksheets(“Sales Data”).Select

Now below code will find the last used row and last used column.

LR = Cells(Rows.Count, 1).End(xlUp).Row

LC = Cells(1, Columns.Count).End(xlToLeft).Column

Now from the first cell, we resizing the range from last used row to last used column and select is the method used. So now it doesn’t matter how big your data is it will dynamically select the data by finding the last used row and last used column.

Things to Remember

  • Resize property in VBA will change the size of the range from the active cell (including the active cell as well).
  • We just need to provide how many rows and how many columns to be resized from the active cell in VBA.
  • We cannot use negative row & column number for RESIZE property.