VBA XLUP | Як використовувати VBA XLUP в Excel? (з прикладами)

Excel VBA XLUP

Під час написання коду VBA потрібно пам’ятати одне, що ви робите зі звичайним робочим аркушем, і ви можете повторити те саме в VBA. Одним із таких ключових слів у кодуванні VBA є «XLUP», у цій статті ми покажемо вам, що це ключове слово в кодуванні VBA та як використовувати його у кодуванні.

Як використовувати VBA XLUP у кодуванні?

Нижче наведено приклади Excel VBA XLUP.

Завантажити цей шаблон VBA XLUP Excel можна тут - Шаблон Excel VBA XLUP

Приклад №1 - Переміщення комірок у Видалене положення комірок

Наприклад, подивіться на сценарій наведених нижче даних, де вам потрібно видалити дані кольорових клітинок та інші дані нижче рядків до вищезазначених даних.

Одним із способів видалення цього на робочому аркуші є вибір тих клітинок, в яких ми можемо просто видалити весь сам рядок. Але тут ситуації трохи хитрі, оскільки у мене в Таблиці 1 є кольорові клітинки, коли ми видаляємо весь рядок, навіть рядки Таблиці 2 також видаляються, але ми не хочемо, щоб це відбувалося, натомість нам потрібно лише видалити кольорові рядки, а клітинки нижче повинні рухатися вгору до позиції видалених комірок.

Спочатку виділіть кольорові клітинки та натисніть Ctrl + Мінус Символ (-), щоб відкрити опцію “Видалити”.

Клавіша швидкого доступу, щоб відкрити опцію «Видалити»

У вікні параметрів «видалити» ми маємо чотири варіанти, ми можемо вибрати дію відповідно до наших вимог. Оскільки нам потрібно перемістити клітинки вгору для позицій видалених комірок, виберіть “Shift Cell Up”.

Ми матимемо незмінені рядки таблиці 2.

Ця дія у VBA вимагає використання властивості “XLUP” для виконання подібного набору дій у VBA. Тепер підійдіть до вікна редактора VBA і запустіть ім'я макросу.

Код:

 Sub XLUP_Example () Кінець Sub 

Спочатку поставте комірку RANGE, яка буде включена в цю операцію. У цій дії першими клітинками, які потрібно видалити та перемістити вгору, є клітини “A5: B5”.

Код:

 Sub XLUP_Example () Діапазон ("A5: B5") Кінець Sub 

Для цього діапазону комірок виберіть метод “Видалити”.

Код:

 Sub XLUP_Example () Діапазон ("A5: B5"). Видалити Кінець Sub 

Як ви можете бачити для методу “Delete”, у нас є один необов’язковий аргумент як [Shift], для цього аргументу нам потрібно ввести аргумент як “XLUP”.

Код:

 Sub XLUP_Example () Діапазон ("A5: B5"). Видалити зсув: = xlUp Кінець Sub 

Тепер ви можете запустити цей код вручну або за допомогою комбінації клавіш excel F5, щоб побачити результат.

Як ви можете бачити в таблиці 1, у нас рядок № 6 переміщено вгору на 5-й рядок, а з іншого боку, таблиця 2-й рядок (кольорова) не змінюється, тому, використовуючи опцію “VBA XLUP”, ми можемо виконати цю операцію.

Приклад №2 - Знайдіть останній використаний рядок за допомогою XLUP

Уявіть ситуацію, коли ви знаходитесь у клітинці A20-ї (подивіться на зображення нижче), а остання використана комірка - A14.

Тепер, якщо ви хочете вибрати останню використану комірку (A14). як ви це зробите за допомогою комбінації клавіш ???

Ми використовували б клавіші Ctrl + стрілка вгору, щоб перейти до останньої використаної комірки з поточної позиції.

Комбінація клавіш для переходу до останньої використаної комірки 

Отже, з поточної комірки Ctrl + стрілка вгору вибрала останню використану комірку. Подібним чином, у кодуванні VBA ми використовуємо END (XLUP), щоб виконати те саме.

Тепер поверніться до вікна кодування VBA.

In this window, we will perform the task of finding the last used row in the worksheet. Create a new subprocedure in the VBA window.

Code:

 Sub XLUP_Example1() End Sub 

To store the last used row number. define the variable as the VBA LONG data type.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long End Sub 

Now for this variable, we will assign the last used row number.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Last_Row_Number = End Sub 

Now use RANGE object and open this object.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Last_Row_Number = Range( End Sub 

Now mention the active cell (A20) for RANGE object.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20") End Sub 

Now open END property for supplied range cell.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End( End Sub 

As you can see above, we have to arrow key options like “xlDown”, “xlToLeft”, “xlToRight”, “xlUp”. Since we are moving up from the A14 cell choose the “VBA XLUP” option.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp) End Sub 

After moving up from A14 cell we need to mention what we need to do since we need the last used row number I will use ROW property.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row End Sub 

Now for the message box assign the value of variable “Last_Row_Number”.

Code:

 Sub XLUP_Example1()  Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

So message box showing the last used row number as 14, so our last data used row number is A14 cell.

In this case, since data is very small we started from A20 cell but when the data is large we cannot say which cell to take into consideration first, in such cases we need to employ a different technique.

We need to use CELLS property, below is the example of the same.

Code:

 Sub XLUP_Example2() Dim Last_Row_Number As Long Last_Row_Number = Cells(Rows.Count, 1).End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

Instead of a RANGE object, I have used CELLS property. Let me explain this in detail to you.

ROW.COUNT this will count how many rows are there in column 1. What this will do is it will take into consideration of the last cell in the worksheet instead of random cell address, in the above case we have used A14 as the random cell address.

Things to Remember about VBA XLUP

  • XLUP is the word used in VBA code to replicate the action of the “Up Arrow” key in excel.
  • VBA XLUP is used to move from active cells to the above cell or last used cell.
  • XLUP is generally used along with END property in VBA.