Текущ регион на VBA

Този урок ще обясни как да използвате текущия регион във VBA.

The CurrentRegion property във VBA е начин да изберете всички клетки, които се съдържат в диапазон, с които може да искате да работите. Докато всички клетки в обхвата са последователни или се „докосват“ помежду си, CurrentRegion ще избере всяка клетка в региона.

Синтаксис на CurrentRegion

Синтаксисът е много прост:

1 Обхват ("E11"). CurrentRegion. Изберете

където ще посочите клетката, чийто текущ регион искате да изберете, и след това да използвате CurrentRegion.Select свойство, за да изберете диапазона от клетки.

Получаване на текущия регион

Помислете за следния работен лист.

следната подпроцедура би избрала всички клетки в базата данни

1234567 Sub FindCurrentRegion ()Dim rng As Range'задайте диапазона на Cell E11Задайте rng = Обхват ("E11")'изберете текущия регионrng.CurrentRegion.SelectEnd Sub

Ако изпълним рутината, всички клетки в CurrentRegion от клетка E11 ще бъде избрана.

Ако премахнем съдържанието на съседните клетки и стартираме отново рутината, следното ще бъде избрано като текущ регион.

Ако обаче премахнем още повече данни, бихме могли да завършим с примера по -долу за текущия регион на клетка E11.

Поставяйки информацията ack в D13, получаваме следното:

The CurrentRegion следователно връща друг диапазон обект, дефиниран от най -малката комбинация от заети колони и редове, които обграждат предоставения от вас диапазон.

Преброяване на редовете и колоните в текущия регион

Можем да използваме CurrentRegion за преброяване на редовете и колоните.

12345678910111213 Sub FindCurrentRegion ()Dim rng As RangeЗатъмнете iRw като цяло числоЗатъмнете iCol като цяло число'задайте диапазонаЗадайте rng = Обхват ("E11")'бройте редоветеiRw = rng.CurrentRegion.Rows.Count'бройте колонитеiCol = rng.CurrentRegion.Columns.Count'покажете резултата в поле за съобщениеMsgBox ("Имаме редове" & iRw & "и колони" & iCol & "в нашия текущ регион")End Sub

Ако изпълним процедурата, ще се появи следното поле със съобщение.

Изчистване на текущия регион

Можем също да използваме текущото свойство на региона, за да изчистим обхвата на клетките.

123456 Sub ClearCurrentRegion ()Dim rng As Range'задайте диапазонаЗадайте rng = Обхват ("E11")rng.CurrentRegion.ClearEnd Sub

Присвояване на текущия регион на променлива

Можем също така да присвоим целия текущ регион на променлива за диапазон и след това да използваме тази променлива за манипулиране на клетките - било то форматиране на клетките, сортиране на клетките и т.н.

12345678910 Sub AssignCurrentRegionToVariable ()Dim rng As Range'задайте диапазона като текущия регион на E11Задайте rng = Обхват ("E11"). CurrentRegion'оцветете фона и текстаrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Вярноrng.Font.Color = -16776961End Sub

Ако изпълним процедурата по -горе, ще завършим с работен лист, както е показано по -долу!

Получаване на началните и крайните клетки в текущия регион

С малко по -сложен код можем да получим първата и последната клетка в текущ регион.

123456789101112131415161718 Sub GetStartAndEndCells ()Dim rng As RangeЗатъмнете iRw като цяло числоЗатъмнете iCol като цяло числоDim iColStart, iColEnd, iRwStart, iRwEnd As String'задайте променливата на диапазона да бъде текущата област на E11Задайте rng = Обхват ("E11"). CurrentRegion'задайте началната колона за диапазонаiColStart = rng.Column'вземете крайната колона за диапазонаiColEnd = iColStart + (rng.Columns.Count - 1)'вземете началния ред за диапазонаiRwStart = rng.Row'вземете крайния ред за диапазонаiRwEnd = iRwStart + (rng.Rows.Count - 1)'покажете адреса на началния и крайния ред и колони в поле за съобщениеMsgBox ("Обхватът започва от" & клетки (iRwStart, iColStart). Адрес & "и завършва на" & клетки (iRwEnd, iColEnd). Адрес)End Sub

Когато стартираме горния код, ще се появи следното поле със съобщение

wave wave wave wave wave