Activecell Offset 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… Изберете

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 програмиране | Code Generator работи за вас!

Използване на Range Object с Activecell.Offset Select

Използването на Range Object с активната клетка понякога може да обърка някои хора.

Помислете за следната процедура:

1234 Sub ActiveCellOffsetRange ()Обхват ("B1: B10"). ИзберетеActiveCell.Offset (1, 1) .Range ("A1"). ИзберетеEnd Sub

С ActiveCell.Offset (1,1.Range (“A1”), е определен диапазонът (“A1”). Това обаче не означава, че клетка A1 в листа ще бъде избрана. Както сме посочили Range („B1: B10“), клетка A1 в този диапазон всъщност е клетка B1 в работната книга. Следователно клетката ще бъде изместена с 1 ред и 1 колона от клетка В1 НЕ от клетка А1.

Следователно диапазонът („A1 ′) в този случай не се изисква, тъй като макросът ще работи по същия начин с него или без него.

Алтернативи на ActiveCell

Вместо да използваме Activecell с метода Offset, можем да използваме и обекта Range с метода Offset.

123 Sub RangeOffset ()Обхват ("B1"). Офсет (0, 1) .ИзберетеEnd Sub

Горната процедура би избрала клетка C1 в работния лист.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave