Цей підручник покаже, як використовувати зміщення Activecell у VBA.
ActiveCell - це властивість VBA, яка представляє адресу комірки активної комірки на вашому аркуші. Якщо вказівник миші розташований у клітинці A1, властивість ActiveCell у VBA поверне адресу комірки “A1”. Це ряд властивостей і методів, які пов'язані з ActiveCell. У цій статті ми зосереджуємось на методі ActiveCell.Offset.
Властивості та методи ActiveCell.Offset
Activecell.Offset має ряд властивостей і методів, доступних для програмування за допомогою VBA. Щоб переглянути доступні властивості та методи, введіть наступний вираз у процедурі, як показано нижче, і натисніть клавішу крапки на клавіатурі, щоб побачити випадаючий список.
Методи зображуються зеленою піктограмою методу, а властивості - значком маленької руки. Властивості та методи для методу Activecell.Offset такі ж, як і для методу Activecell.
Синтаксис ActiveCell.Offset
Синтаксис Activecell.Offset виглядає наступним чином
де RowOffset та ColumnOffset - це кількість рядків для зміщення (позитивні числа для зменшення, від’ємне число для збільшення) або кількість стовпців, які ви бажаєте змістити (позитивні числа зміщуються праворуч, від’ємне число ліворуч).
ActiveCell.Offset… Виберіть
The Activecell.Offset… Виберіть метод є найбільш часто використовуваним методом для методу Activecell.Offset. Це дозволяє перейти до іншої клітинки на вашому аркуші. Ви можете використовувати цей метод для переміщення по стовпцях або вгору або вниз рядків на своєму аркуші.
Щоб рухатися вниз по рядку, але залишатися в одному стовпці:
1 | Activecell.Offset (1,0) .Виберіть |
Щоб переміщатися по стовпцю, але залишатися в одному рядку:
1 | Activecell.Offset (0,1) .Виберіть |
Щоб переміститися вниз по рядку та по стовпцю:
1 | Activecell.Offset (1,1) .Виберіть |
Щоб перемістити рядок вгору:
1 | Activecell.Offset (-1,0) .Виберіть |
Щоб перемістити стовпець ліворуч:
1 | Activecell.Offset (0, -1) .Виберіть |
У наведеній нижче процедурі ми прокручуємо діапазон клітинок і рухаємося вниз по одному рядку та по одному стовпцю під час циклу:
12345678 | Sub ActiveCellTest ()Dim x як ціле числоДіапазон ("A1"). ВиберітьДля x = 1-10ActiveCell = xActiveCell.Offset (1, 1) .ВиберітьДалі xEnd Sub |
Результат цього показаний на графіку нижче:
Цикл додає значення i (1-10) до Activecell, а потім він використовує Activecell.Offset властивість переміщатися вниз на один рядок і через один стовпець праворуч - повторюючи цей цикл 10 разів.
Програмування VBA | Генератор коду працює для вас!
Використання Range Object з Activecell.Offset Select
Використання об’єкта діапазону з активною клітинкою іноді може збентежити деяких людей.
Розглянемо таку процедуру:
1234 | Sub ActiveCellOffsetRange ()Діапазон ("B1: B10"). ВиберітьActiveCell.Offset (1, 1) .Range ("A1"). ВиберітьEnd Sub |
Зі зміщенням ActiveCell.Offset (1,1.Range (“A1”)) був визначений діапазон (“A1”). Однак це не означає, що клітинка A1 на аркуші буде вибрана. Як ми вказали діапазон ("B1: B10"), клітинка A1 у цьому діапазоні насправді є коміркою B1 у книзі. Тому комірка буде зміщена на 1 рядок і 1 стовпець від комірка В1 НЕ з комірки А1.
Тому діапазон (“A1 ′”) у цьому випадку не потрібен, оскільки макрос буде працювати так само з ним або без нього.
Альтернативи ActiveCell
Замість того, щоб використовувати Activecell з методом Offset, ми також можемо використовувати об'єкт Range з методом Offset.
123 | Sub RangeOffset ()Діапазон ("B1"). Зсув (0, 1) .ВиберітьEnd Sub |
Вищеописана процедура виділить клітинку С1 на робочому аркуші.