Функция VBA OFFSET на Excel
Функцията VBA Offset се използва за преместване или препратка към препратка, прескачаща определен брой редове и колони, аргументите за тази функция във VBA са същите като на аргументите в работния лист.
Да приемем например, че имате набор от данни като този по-долу.

Сега от клетка А1 искате да се придвижите надолу с 4 клетки и искате да изберете тази 5 -та клетка, т.е. клетка А5.
По същия начин, ако искате да се придвижите надолу от клетка А1 2 реда и да отидете 2 колони вдясно и да изберете тази клетка, т.е. клетка С2.
В тези случаи функцията OFFSET е много полезна. Особено във VBA OFFSET Функцията е просто феноменална.
OFFSET се използва с Range Object в Excel VBA
Във VBA не можем директно да въведем думата OFFSET. Първо трябва да използваме обекта VBA RANGE и от този обект диапазон можем да използваме свойството OFFSET.
В Excel, диапазонът не е нищо друго освен клетка или диапазон на клетката. Тъй като OFFSET се отнася до клетки, първо трябва да използваме обекта RANGE и след това можем да използваме метода OFFSET.
Синтаксис на OFFSET във VBA Excel

- Изместване на реда: Колко реда искате да изместите от избраната клетка. Тук избраната клетка е A1, т.е. обхват („A1“).
- Изместване на колона: Колко колони искате да компенсирате от избраната клетка. Тук избраната клетка е A, 1, т.е. Range („A1“).
Примери
Пример # 1
Помислете за данните по-долу, например демонстрация.

Сега искам да избера клетка A6 от клетка A1. Стартирайте макроса и референтната клетка, като използвате обекта Range.
Код:
Sub Offset_Example1 () Обхват ("A1"). Офсет (End Sub

Сега искам да избера клетка A6, т.е. искам да намаля 5 клетки. Така че въведете 5 като параметър за изместване на реда.
Код:
Sub Offset_Example1 () Обхват ("A1"). Offset (5 Краен Sub

Тъй като избирам в същата колона, оставям частта от колоната. Затворете скобата и поставете точка (.) И въведете метода „Избор“.
Код:
Sub Offset_Example1 () Обхват ("A1"). Offset (5). Изберете End Sub

Сега стартирайте този код, като използвате клавиша F5, или можете да стартирате ръчно, за да изберете клетката A6, както е показано по-долу.

Изход:

Пример # 2
Сега вземете същите данни, но тук ще видим как да използваме и аргумента за изместване на колоната. Сега искам да избера клетката C5.
Тъй като първо искам да избера клетката C5, искам да се преместя надолу с 4 клетки и да взема 2 десни колони, за да достигна клетката C5. Кодът по-долу ще ми свърши работа.
Код:
Sub Offset_Example2 () Обхват ("A1"). Offset (4, 2). Изберете End Sub

Пускам този код ръчно или използвайки клавиша F5. След това ще избере клетката C5, както е показано на екрана по-долу.

Изход:

Пример # 3
Видяхме как да компенсираме редове и колони. Също така можем да изберем горните клетки и от посочените клетки. Например, ако сте в клетка A10 и искате да изберете клетка A1, как да изберете?
В случай на придвижване надолу по клетката, можем да въведем положително число, така че тук в случай на придвижване нагоре трябва да въведем отрицателни числа.
От клетка A9 трябва да се придвижим с 8 реда нагоре, т.е. -8.
Код:
Sub Offset_Example1 () Обхват ("A9"). Offset (-8). Изберете End Sub

Ако стартирате този код с помощта на клавиша F5 или можете ръчно да го стартирате, той ще избере клетката A1 от клетката A9.

Изход:

Пример # 4
Да приемем, че сте в клетката C8. От тази клетка искате да изберете клетката A10.
От активната клетка, l, т.е. клетката C8, първо трябва да се преместим надолу с 2 реда и трябва да се преместим вляво с 2 колони, за да изберем клетката A10.
В случай на преместване наляво, за да изберете колоната, трябва да посочим, че числото е отрицателно. Така че тук трябва да се върнем с -2 колони.
Код:
Sub Offset_Example2 () Обхват ("C8"). Offset (2, -2). Изберете End Sub

Сега стартирайте този код с помощта на клавиша F5 или стартирайте ръчно, той ще избере клетка A10, както е показано по-долу:

Изход:

Неща за запомняне
- В случай на преместване на редове, трябва да посочим броя в отрицателни числа.
- В случай на преместване наляво, за да изберете колоната, числото трябва да е отрицателно.
- Клетката A1 е първият ред и първата колона.
- Активна клетка означава в момента избрани клетки.
- Ако искате да изберете клетката с помощта на OFFSET, трябва да споменете „.Изберете.“
- Ако искате да копирате клетката с помощта на OFFSET, трябва да споменете „.Copy.“