Як написати код обробки діапазонів даних будь-яких розмірів в excel 2018, зведені таблиці excel 2018

Щоб написати ефективний VBA-код, слід освоїти кілька простих методик. Засіб запису макросів строго визначає діапазон керованих даних, наприклад A1: L87601. Хоча такий код ефективно працює з поточним набором даних, він може бути непридатний до нових наборам даних. Тому доцільно створити код, який може обробляти діапазони даних різних розмірів.

Для посилання на осередок засіб запису макросів використовує синтаксис Range ( "Н12"). Однак є більш ефективний спосіб створення посилання, наприклад, на осередок в рядку 12 колонки 8, що полягає в застосуванні синтаксису Cells (12,8). Подібним чином засіб запису макросів буде посилатися на прямокутний діапазон комірок за допомогою синтаксису Range ( "A1: L87601"). Однак для більшої гнучкості слід застосувати метод Cells () для вказівки верхнього лівого кута діапазону, а потім метод Resize () - для визначення кількості рядків і стовпців в діапазоні. Цей спосіб використовують деякі розробники при створенні аркади на комп'ютер. Альтернативний синтаксис опису попереднього діапазону має наступний вигляд: Cells (1,1) .Resize (8760l / 12). Цей спосіб забезпечує більшу гнучкість, оскільки з'являється можливість замінити будь-яке число змінної.

В інтерфейсі Excel можна використовувати клавішу End для переходу в кінець діапазону даних. Якщо помістити курсор в підсумковий рядок робочого аркуша і натиснути End. то курсор перейде до останнього рядка даних. У VBA еквівалентний код має такий вигляд:

Вам не потрібно вибирати саму осередок - потрібно лише визначити номер останнього рядка. Наступний код показує рядок і зберігає її номер в змінної FinalRow:

В імені змінної FinalRow немає нічого магічного. Цієї змінної можна привласнити інше ім'я, наприклад х, у або будь-яке інше. Однак оскільки в VBA краще використовувати описові назви змінних, то для опису підсумкового рядка рекомендуються такі імена, як FinalRow.

Можна також визначити останній рядок в наборі даних. Якщо ви точно впевнені, що набір даних починається з рядка 1, то можете використовувати клавішу End в комбінації з клавішею ←, щоб перейти від комірки XFD1 до останнього стовпцю таблиці, в якому містяться дані. Щоб забезпечити виконання коду в застарілих версіях Excel, можна використовувати наступний код:

Використання комбінацій клавіш END + ↓ і END + ↑

Багато хто вважає, що для визначення останнього рядка діапазону, що починається в осередку А1, слід натиснути комбінацію клавіш End + A. Не варто розраховувати на такий метод, оскільки дані, які передаються з іншої системи, можуть виявитися неповними. Якщо програма останні п'ять років імпортує 500 000 рядків із застарілої комп'ютерної системи, в один прекрасний момент в наборі даних може з'явитися нульове значення. Це призведе до утворення порожнього вічка або навіть рядка в середині набору даних. Саме в цьому осередку перестане виконуватися вираз Range ( "А1"). End (xlDown). що призведе до втрати інших даних. Існування порожнього вічка може привести до того, що в щоденному звіті будуть відсутні тисячі рядків даних, що підірве довіру до звіту і до вас особисто. Виконайте додаткову операцію, щоб перейти до останнього рядка робочого аркуша, що дозволить різко зменшити ймовірність виникнення помилок.

Схожі статті