У цьому підручнику буде пояснено, як використовувати Поточний регіон у 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 |
Коли ми запустимо код вище, з'явиться наступне вікно повідомлення