Поточний регіон VBA

У цьому підручнику буде пояснено, як використовувати Поточний регіон у VBA.

The Поточний регіон властивість у VBA - це спосіб виділити всі клітинки, що містяться в діапазоні, з якими ви могли б працювати. Поки всі клітини в межах діапазону є послідовними або «торкаються» одна одної, Поточний регіон вибере кожну клітинку в регіоні.

Синтаксис CurrentRegion

Синтаксис дуже простий:

1 Діапазон ("E11"). CurrentRegion. Виберіть

де ви б вказали клітинку, поточну область якої ви хотіли б вибрати, а потім скористатися CurrentRegion.Select властивість вибирати діапазон клітинок.

Отримання поточного регіону

Розглянемо наступний аркуш.

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

1234567 Sub FindCurrentRegion ()Зменшити діапазон як діапазон'встановіть діапазон значення Cell E11Встановити rng = Діапазон ("E11")'виберіть поточний регіонrng.CurrentRegion.SelectEnd Sub

Якщо ми запустимо процедуру, усі клітинки в Поточний регіон клітинки E11 буде вибрано.

Якщо ми видалимо вміст суміжних клітинок і знову запустимо процедуру, наступне буде вибрано як поточну область.

Однак, якщо ми видалимо ще більше даних, ми можемо закінчити наведеним нижче прикладом для поточної області клітини E11.

Розмістивши інформацію Dk у D13, ми отримаємо наступне:

The Поточний регіон тому повертає інший діапазон об'єкт, визначений найменшою комбінацією зайнятих стовпців і рядків, що оточують наданий вами діапазон.

Підрахунок рядків і стовпців у поточному регіоні

Ми можемо використовувати Поточний регіон для підрахунку рядків і стовпців.

12345678910111213 Sub FindCurrentRegion ()Зменшити діапазон як діапазонЗатемнити iRw як ціле числоЗатемнити iCol як ціле число'встановити діапазонВстановити rng = Діапазон ("E11")'порахуйте рядкиiRw = rng.CurrentRegion.Rows.Count'порахуйте стовпціiCol = rng.CurrentRegion.Columns.Count'показати результат у вікні повідомленняMsgBox ("У нашому поточному регіоні є рядки" & iRw & "та стовпці" & iCol & ")End Sub

Якщо ми запустимо процедуру, з'явиться наступне вікно повідомлення.

Очищення поточного регіону

Ми також можемо використовувати поточну властивість region для очищення діапазону клітинок.

123456 Sub ClearCurrentRegion ()Зменшити діапазон як діапазон'встановити діапазонВстановити rng = Діапазон ("E11")rng.CurrentRegion.ClearEnd Sub

Призначення змінної поточного регіону

Ми також можемо призначити весь поточний регіон змінній діапазону, а потім використовувати цю змінну діапазону для маніпулювання клітинками - будь то форматування клітинок, сортування комірок тощо …

12345678910 Sub AssignCurrentRegionToVariable ()Зменшити діапазон як діапазон'встановити діапазон як поточну область E11Встановіть rng = Діапазон ("E11"). CurrentRegion'забарвити фон і текстrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Правдаrng.Font.Color = -16776961End Sub

Якщо ми запустимо описану вище процедуру, ми отримаємо робочий аркуш, як показано нижче!

Отримання початкової та кінцевої клітинок у поточному регіоні

За допомогою дещо складнішого коду ми можемо отримати першу і останню клітинки в поточній області.

123456789101112131415161718 Sub GetStartAndEndCells ()Зменшити діапазон як діапазонЗатемнити iRw як ціле числоЗатемнити iCol як ціле числоЗатемнити iColStart, iColEnd, iRwStart, iRwEnd як рядок'встановіть змінну діапазону як поточну область E11Встановіть rng = Діапазон ("E11"). CurrentRegion'встановити початковий стовпець для діапазонуiColStart = rng.Column'отримати кінцевий стовпець для діапазонуiColEnd = iColStart + (rng.Columns.Count - 1)'отримати початковий рядок для діапазонуiRwStart = rng.Row'отримати кінцевий рядок для діапазонуiRwEnd = iRwStart + (rng.Rows.Count - 1)'відобразити адресу початкового та кінцевого рядків і стовпців у вікні повідомленняMsgBox ("Діапазон починається з" & Cells (iRwStart, iColStart). Адреса & "і закінчується на" & Cells (iRwEnd, iColEnd). Адреса)End Sub

Коли ми запустимо код вище, з'явиться наступне вікно повідомлення

wave wave wave wave wave