Як автоматично налаштувати комбіноване поле або список на основі динамічних діапазонів даних в Excel

Поділитися зараз:

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

Передбачається, що на пристрої для читання відображається стрічка розробника та він знайомий з редактором VBA. Якщо ні, будь ласка, перегляньте Google “Вкладка розробника Excel” або “Вікно коду Excel”.

Професійним способом відображення комбінованих коробок є розширення чи зменшення їх асортименту за необхідності. Наприклад:Професійний спосіб відображення комбінованих коробок

Ключем до динамічного діапазону є відстеження кількості заповнених рядків у відповідному стовпці за допомогою функції = countA. Ця функція підраховує заповнені елементи в послідовності комірок, поки не потрапить до останньої; у випадку першої діаграми на зображенні вище це буде рядок 11.

Для підтримки діапазону автоматично потрібні визначені імена для відстеження кількості заповнених рядків. Наприклад, ми використовуємо eCol (кінцевий стовпець) та eRow (кінцевий рядок), щоб визначити межі нашого діапазону. Чим більше рядків ми заповнюємо, тим більшим стає значення eRow.Використовуйте eCol та eRow, щоб визначити межі діапазону

Визначені назви вище встановили для списку ширину в один стовпець (eCol = 1) за кількістю заповнених рядків у eCol (eRow = 11)

Нарешті, заголовки з’являються в діапазоні “A2: A” & eRow. Ви зауважите, що функція індексу використовується для встановлення останньої комірки в діапазоні, що називається “Титри”. На цьому етапі діапазон “A2: A” & eRow перекладається на “A2: A11”.Функція покажчика

Ми можемо налаштувати динамічний діапазон автоматично, коли книга відкривається, за допомогою підпроцедури Auto_open, яка запускається до того, як книга стане видимою.

Кодекс

Відкрийте книгу та заповніть її полем зі списком та деякими даними. Зразок робочої книги, що використовується у цій вправі, можна знайти тут.

Відкрийте вікно коду VBA та вставте модуль. Скопіюйте код нижче в модуль.

Подія Auto_Open встановлює значення останнього рядка та останнього стовпця для динамічного діапазону “Titles” та зазначає подальші внесені зміни.

Sub auto_open()
     Dim eRow As Integer, eCol As Integer, i As Long
 
     On Error Resume Next
 
     'Clear the present define names, to avoid any duplications
     activeworkbook.Names("eCol").Delete
     activeworkbook.Names("eRow").Delete
     activeworkbook.Names("Titles").Delete
     Range("A1").Select
 
    'Titles will appear in the first column, A in this case
    eCol = 1
 
    'Find the last populated row
    eRow = Sheets("Main").Cells(Rows.Count, eCol).End(xlUp).Row
 
    'Define the names
     activeworkbook.Names.Add Name:="eCol", RefersTo:="=COUNTA($1:$1)"
     activeworkbook.Names.Add Name:="eRow", RefersToR1C1:="=COUNTA(C" & ColNo & ")"
     activeworkbook.Names.Add Name:="Titles", RefersTo:="=A2:INDEX($2:$200," & "eRow," & "eCol)"
End Sub

Sub DropDown1_Change()
     MsgBox "Directed by " & Cells(2, 5)
End Sub

Примітка: Для спрощення перегляду все розміщено на одній сторінці. Зазвичай значення у стовпцях A та B, а також D та E знаходяться на іншому, можливо, прихованому, аркуші. Також зверніть увагу, що другий стовпець, B, не використовується у визначеннях діапазону в цій конкретній вправі; значення стовпця B отримуються звичайним способом через властивість cell-link поля зі списком (D2 відображає вибір третього елемента в діапазоні, який починається з A2, у поєднанні з функцією Index в «E3» для знаходження директора (=INDEX(B:B,D2+1,1)).Поле зі списком спочатку заповнюватиметься Auto_open

Збережіть книгу, а потім знову відкрийте її. Поле зі списком спочатку заповнюється Auto_open. Додайте елементи до стовпців A та B та спостерігайте за змінами у списку.

Пошкоджені файли Excel

Час від часу файли Excel можуть пошкоджуватися після несподіваного збою Excel. Якщо у вас є резервна копія, ви можете просто відновити дані за допомогою резервної копії. В іншому випадку вам може знадобитися звернутися до професійного експерта або інструменту для відновлення корумпований Excel файли.

Вступ автора:

Фелікс Хукер - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі ремонт rar-файлів та програмні продукти для відновлення sql. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.