Як керувати даними в Excel за допомогою VBA

Microsoft Excel - це потужний інструмент, який можна використовувати для маніпулювання даними. Для того, щоб максимально використати програмне забезпечення, потрібно використовувати VBA. Visual Basic для додатків або VBA надає користувачам Excel можливість створювати макроси, які є потужними спеціальними функціями, які дозволяють економити час для обробки даних і аналізу.

Макроси обробляють код VBA для керування великими наборами даних, які в іншому випадку потребують багато часу для модифікації. Наприклад, за допомогою VBA можна створити макрос для автоматичного форматування певних полів, що відповідають вашим визначеним критеріям.

Нижче наведено приклад сценарію VBA, який використовується в Excel:

Sub ConfigureLogic ()

Дим qstEntries

Дим

Дим qstCnt, dqstCnt

qstEntries = Діапазон ("QualifiedEntry")

qst = qstEntries - WorksheetFunction.CountIf (Діапазон ("QualifiedEntry"), "")

ReDim QualifiedEntryText (qst)

'MsgBox (qst)

dqstEntries = Діапазон ("DisQualifiedEntry")

dqst = dqstEntries - WorksheetFunction.CountIf (діапазон ("DisQualifiedEntry"), "")

ReDim DisqualifiedEntryText (dqst)

'MsgBox (dqst)

Для qstCnt = 1 до qst

QualifiedEntryText (qstCnt) = ThisWorkbook.Worksheets ("Кваліфікатори"). Діапазон ("J" & 8 + qstCnt) .value

'MsgBox (QualifiedEntryText (qstCnt))

ведення журналу ("Налаштування запису кваліфікованого запису #" & qstCnt & "як {" & QualifiedEntryText (qstCnt) & "}")

Далі

Для dqstCnt = 1 До dqst

DisqualifiedEntryText (dqstCnt) = ThisWorkbook.Worksheets ("Кваліфікатори"). Діапазон ("M" & 8 + dqstCnt) .value

'MsgBox (DisqualifiedEntryText (dqstCnt))

ведення журналу ("Налаштування запису" Дискваліфікований запис "" & qstCnt & "як {" & DisqualifiedEntryText (dqstCnt) & "}")

Далі

includeEntry = ThisWorkbook.Worksheets ("Кваліфікатори"). Діапазон ("IncludeSibling").

'MsgBox (includeEntry)

ведення журналу ("Entrys включений в пошук -" & includeEntry)

End Sub

Як аналізувати та керувати записами в електронній таблиці

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

Далі створіть новий аркуш і назвіть його "Кваліфікатори". Ми використаємо цей аркуш, щоб перевірити всі речі, які відповідають вибору.

Далі налаштуйте класифікатори на аркуші відповідно до коду. Його потрібно ввести вручну; вирізати і вставити не буде працювати.

Діапазон ("J" & 8 + qstCnt) .value

Як знайти діапазон і побудувати масив

Діапазон у функції вище є осередком J9. Функція діапазону відзначає 8; проте фактичний діапазон становить 9, оскільки:

 Для qstCnt = 1 до qst 

Вищенаведене твердження починається з 1, а не з 0. Отже, список починається з 9. У цьому випадку зверніть увагу (qstCnt = 1).

Щоб побудувати масив із записів на робочій таблиці Qualifiers, розмістіть випадкові слова в клітинах J9-J13. Після завершення рядків ми можемо рухатися вперед з пошуком та маніпулюванням даними в Excel.

 Приватні таблиці лічильників ()

Літній аркуш

Dim WS As Worksheet

лічильник = 0

ведення журналу ("***** Початок Scrub *********")

Для кожного WS в ThisWorkbook.Worksheets

лічильник = кількість листів + ​​1

Якщо WS.Name = "Вибрано", то

потрібно ввести дату й час у аркуш "Журнал"

ActionCnt = ActionCnt + 1

ведення журналу ("Лист виклику:" & WS.Name)

листи (кількість аркушів)

Ще

ActionCnt = ActionCnt + 1

ведення журналу ("Пропущено над листом:" & WS.Name)

End If

Далі WS

'MsgBox ("закінчення")

ActionCnt = ActionCnt + 1

реєстрації ("**** Scrub DONE!")

Application.ScreenUpdating = True

End Sub

Є приклад робочого лічильника вкладок.

Літній аркуш

Dim WS As Worksheet

лічильник = 0

ведення журналу ("***** Початок Scrub *********")

Для кожного WS в ThisWorkbook.Worksheets

лічильник = кількість листів + ​​1

Після ініціалізації підрахунку аркушів встановіть значення 0, щоб перезапустити лічильник.

Logging () - це інша підпрограма, яка відстежує всі дії для перевірки вибору.

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

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

 Якщо WS.Name = "Вибрано", то

потрібно ввести дату й час у аркуш "Журнал"

ActionCnt = ActionCnt + 1

ведення журналу ("Лист виклику:" & WS.Name)

листи (кількість аркушів)

Ще

ActionCnt = ActionCnt + 1

ведення журналу ("Пропущено над листом:" & WS.Name)

End If

Тут ми шукаємо вкладку "Вибрані".

Якщо змінна WS дорівнює вибраному, то ми реєструємо його і запускаємо підпрограму Scrub Sheet. Якщо змінна WS не дорівнює вибраному, то реєструється, що цей аркуш був пропущений, і дія підраховується. Наведений вище код є прикладом підрахунку кількості та пошуку певної вкладки.

Нижче наведено список різних методів, які можна використовувати для маніпулювання даними!

ЗАБУВАЄТЬСЯ!

Як підрахувати кількість аркушів у робочій книжці

 Dim TAB

Для кожного TAB в ThisWorkbook.Worksheets

- Деякі рутини тут

далі

Знайдіть останній рядок, стовпець або клітинку на аркуші

 Кількість комірок

cellcount = Cells (ThisWorkbook.Worksheets ("робочий лист"). Rows.Count, 1) .End (xlUp) .Row

Фільтруйте за допомогою розширених критеріїв

 Діапазон ("A2: Z99") Клавіша сортування1: = Діапазон ("A5"), порядок 1: = xlAscending, Заголовок: = xlNo 

Застосувати властивість "Автоматична підстановка" до стовпця

 Стовпці ("A: A"). EntireColumn.AutoFit 

Отримання значень з іншого аркуша

 тьмяне новезначення

newvalue = ThisWorkbook.Worksheets ("робочий аркуш"). Діапазон ("F1").

Вставлення стовпця в аркуші

 Рядок, стовпець

Клітини (рядок, стовпець) .EntireColumn.Select

Встановіть

Вставте кілька стовпців у лист

 Дим вставитиCnt

Рядок, стовпець

Для insertCnt = 1 до N

ThisWorkbook.Worksheets ("робочий лист"). Виберіть

Клітини (рядок, стовпець) .EntireColumn.Select

Встановіть

Далі

Додавання іменного діапазону до окремого аркуша

 Name.Add Ім'я: = "Статус", RefersToR1C1: = "= робочий аркуш! C2"

Вставте весь рядок у аркуш

 Рядок, стовпець

Клітинки (рядок, стовпець) .EntireRow.Select

Встановіть

Скопіюйте весь рядок для вставки

 ActiveSheet.Range ("A1")

Виділення

Видалити весь рядок

 ActiveSheet.Range ("A1")

Виділення

Виберіть окремий аркуш

 ThisWorkbook.Worksheets ("робочий лист"). Виберіть 

Порівняйте значення діапазону

 Dim firstrange

Dim Logictest

Logictest = "якесь слово або значення"

Якщо (Діапазон (firstrange) .value = Logictest) тоді

- Деякі рутини тут

End If

Зображення: © Microsoft.

Попередня Стаття Наступна Стаття

Кращі Поради