В этом руководстве будет показано, как использовать Activecell Offset в 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… Выбрать
В Activecell.Offset… Выбрать метод является наиболее часто используемым методом с методом Activecell.Offset. Это позволяет вам перейти к другой ячейке на листе. Вы можете использовать этот метод для перемещения между столбцами или строками вверх или вниз на листе.
Чтобы переместиться вниз по строке, но остаться в том же столбце:
1 | Activecell.Offset (1,0). Выбрать |
Чтобы перемещаться по столбцу, но оставаться в той же строке:
1 | Activecell.Offset (0,1) .Select |
Чтобы переместиться вниз по строке и по столбцу:
1 | Activecell.Offset (1,1) .Select |
Чтобы перейти на строку вверх:
1 | Activecell.Offset (-1,0) .Select |
Чтобы переместиться влево на столбец:
1 | Activecell.Offset (0, -1). Выбрать |
В приведенной ниже процедуре мы перебираем диапазон ячеек и перемещаемся вниз на одну строку и через один столбец по мере выполнения цикла:
12345678 | Подложка ActiveCellTest ()Dim x As IntegerДиапазон ("A1"). ВыберитеДля x = от 1 до 10ActiveCell = xActiveCell.Offset (1, 1) .SelectДалее xКонец подписки |
Результат показан на рисунке ниже:
Цикл помещает значение i (1-10) в Activecell, а затем он использует Activecell.Offset свойство перемещаться на одну строку вниз и на один столбец вправо - повторяя этот цикл 10 раз.
Программирование на VBA | Генератор кода действительно работает для вас!
Использование объекта Range с Activecell.Offset Select
Использование объекта Range с активной ячейкой иногда может сбить с толку некоторых людей.
Рассмотрим следующую процедуру:
1234 | Подложка ActiveCellOffsetRange ()Диапазон ("B1: B10"). ВыберитеActiveCell.Offset (1, 1) .Range ("A1"). ВыбратьКонец подписки |
В ActiveCell.Offset (1,1.Range («A1») был указан диапазон («A1»). Однако это не означает, что ячейка A1 на листе будет выбрана. Поскольку мы указали диапазон («B1: B10»), ячейка A1 в этом диапазоне на самом деле является ячейкой B1 в книге. Поэтому ячейка будет смещена на 1 строку и 1 столбец от ячейка B1 НЕ из ячейки A1.
Следовательно, диапазон («A1 ′) в этом случае не требуется, поскольку макрос будет работать с ним так же, как и без него.
Альтернативы ActiveCell
Вместо использования Activecell с методом Offset мы также можем использовать объект Range с методом Offset.
123 | Sub RangeOffset ()Диапазон ("B1"). Смещение (0, 1). ВыберитеКонец подписки |
Приведенная выше процедура выберет ячейку C1 на листе.