Как да манипулираме данни в Excel с помощта на VBA

Microsoft Excel е мощен инструмент, който може да се използва за манипулиране на данни. За да се възползвате максимално от софтуера, трябва да използвате VBA. Visual Basic for Applications или VBA дава на потребителите на Excel възможността да създават макроси, които са мощни потребителски функции, спестяващи време за манипулиране и анализ на данни.

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

По-долу е даден пример на VBA скрипт, използван в Excel:

Sub ConfigureLogic ()

Dim qstEntries

Dim dqstEntries

Dim 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)

Край Под

Как да анализирате и управлявате записите в електронна таблица

За да използвате VBA за анализ на данни, ще трябва да проверите настройките в Excel за инструмента за разработчици. За да го намерите, намерете лентата на Excel и потърсете раздела Разработчик . Ако не се покаже, ще трябва да го активирате в менюто Настройки на Excel.

След това създайте нов работен лист и го кръстете "Квалификатори". Ще използваме този лист, за да проверим всички неща, които отговарят на изискванията за избор.

След това настройте квалификаторите на листа според кода. Трябва да се въведе ръчно; изрязване и поставяне няма да работи.

Обхват ("J" & 8 + qstCnt) .value

Как да намерим обхвата и да създадем масив

Диапазонът във функцията по-горе е клетка J9. Функцията за обхват отбелязва 8; действителният диапазон обаче е 9, защото:

 За qstCnt = 1 до qst 

Горното изявление започва от 1, а не от 0. Следователно списъкът започва от 9. В този случай, отбележете (qstCnt = 1).

За да се конструира масив от записи в работния лист Qualifiers, поставете произволни думи в клетки J9-J13. След като редовете приключат, можем да продължим напред с намирането и манипулирането на данни в Excel.

 Частни подчинени листове ()

Дълбока фигура

Дим WS като работен лист

брой = 0

вписване ("***** Стартиране на скраб *********")

За всеки WS в ThisWorkbook.Worksheets

брой = брой на листите + 1

Тогава WS.Name = "Избрано"

трябва да запишете датата и часа в листа с име „Logging“

ActionCnt = ActionCnt + 1

регистриране ("Повикващ лист:" & WS.Name)

чистач (лист)

още

ActionCnt = ActionCnt + 1

регистриране ("Пропуснати над лист:" & WS.Name)

Край Ако

Следваща WS

"MsgBox (" край ")

ActionCnt = ActionCnt + 1

регистриране ("**** Scrub DONE!")

Application.ScreenUpdating = True

Край Под

Има пример за работен брояч на раздели.

Дълбока фигура

Дим WS като работен лист

брой = 0

вписване ("***** Стартиране на скраб *********")

За всеки WS в ThisWorkbook.Worksheets

брой = брой на листите + 1

След като инициализирате броя на листа, го настройте на 0, за да рестартирате брояча.

Logging () е друга подпрограма, която следи всички действия, за да провери селекциите.

Следващият цикъл For задава активната работна книга за броене. WS е инициализираната и ThisWorkbook. Работните листове са активният раздел в книгата. Тъй като не сме назовали работната книга, този модул ще работи на всяка активна работна книга. Ако работите върху няколко работни книги и сте активирали грешна, тя ще се опита да работи на нея. За да избегнете грешки, вземете предпазни мерки, за да посочите конкретна работна книга или да работите само с една по една.

Всеки път, когато цикълът се задейства, той добавя една променлива към брояч на листа, за да следи броя на разделите. След това преминаваме към:

 Тогава WS.Name = "Избрано"

трябва да запишете датата и часа в листа с име „Logging“

ActionCnt = ActionCnt + 1

регистриране ("Повикващ лист:" & WS.Name)

чистач (лист)

още

ActionCnt = ActionCnt + 1

регистриране ("Пропуснати над лист:" & WS.Name)

Край Ако

Тук търсим раздела Избрани.

Ако променливата WS е равна на избраната, тогава ние я регистрираме и изстрелваме подпрограмата Scrub Sheet. Ако променливата WS не е равна на избраната, се регистрира, че този лист е пропуснат и действието е отчетено. Горепосоченият код е пример за това как да преброите броя и да намерите определен раздел.

Следващият списък е от всички различни методи, които могат да се използват за манипулиране на данни!

Забавлявай се!

Как да броим броя на листите в работна книга

 Dim TAB

За всяка TAB в ThisWorkbook.Worksheets

- Някаква рутина тук

следващия

Намерете последния ред, колона или клетка на лист

 Брой на клетките

cellcount = Cells (ThisWorkbook.Worksheets ("работен лист"). Rows.Count, 1) .End (xlUp).

Филтрирайте чрез разширените критерии

 Диапазон ("A2: Z99") Клавиш за сортиране1: = Обхват ("A5"), ред 1: = xlAscending, Header: = xlNo 

Приложете Auto-fit Property към колона

 Колони. ( "A: A") EntireColumn.AutoFit 

Получаване на стойности от друг работен лист

 мрачна нова стойност

newvalue = ThisWorkbook.Worksheets ("работен лист"). Обхват ("F1").

Вмъкване на колона в лист

 Димен ред, колона

Клетки (ред, колона) .EntireColumn.Select

Selection.Insert

Вмъкнете няколко колони в лист

 Dim insertCnt

Димен ред, колона

За insertCnt = 1 до N

ThisWorkbook.Worksheets ( "лист"). Изберете

Клетки (ред, колона) .EntireColumn.Select

Selection.Insert

Следващия

Добавяне на определен кръг към конкретен лист

 Names.Add Name: = "Статус", RefersToR1C1: = "= работен лист! C2"

Поставете цял ред в работен лист

 Димен ред, колона

Клетки (ред, колона) .EntireRow.Select

Selection.Insert

Копирайте цял ред за поставяне

 ActiveSheet.Range ( "А1"). EntireRow.Select

Selection.Copy

Изтриване на цял ред

 ActiveSheet.Range ( "А1"). EntireRow.Select

Selection.Delete

Изберете специален лист

 ThisWorkbook.Worksheets ( "лист"). Изберете 

Сравнете стойности на диапазон

 Дим първи

Dim Logictest

Logictest = "някоя дума или стойност"

Ако (Обхват (firstrange) .value = Logictest) тогава

- Някаква рутина тук

Край Ако

Изображение: © Microsoft.

Предишна Статия Следваща Статия

Топ Съвети