Този урок ще обясни как да използвате текущия регион във 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 |
Когато стартираме горния код, ще се появи следното поле със съобщение