Как да манипулираме данни в Excel с помощта на VBA
Макросите обработват 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.SelectSelection.Copy
Изтриване на цял ред
ActiveSheet.Range ( "А1"). EntireRow.SelectSelection.Delete
Изберете специален лист
ThisWorkbook.Worksheets ( "лист"). Изберете
Сравнете стойности на диапазон
Дим първиDim Logictest
Logictest = "някоя дума или стойност"
Ако (Обхват (firstrange) .value = Logictest) тогава
- Някаква рутина тук
Край Ако
Изображение: © Microsoft.