Смещение Activecell VBA

В этом руководстве будет показано, как использовать 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 на листе.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave