ВБА за сваки пример (кратка референца)

Овај водич ће вам показати примере коришћења Фор Евери Лооп у ВБА. Кликните овде да бисте сазнали више о петљама уопште.

За сваку петљу

Фор Евери Лооп вам омогућава да прођете кроз петљу сваки објекат у колекцији:

  • Све ћелије у опсегу
  • Сви радни листови у радној свесци
  • Све отворене радне свеске
  • Сви облици на радном листу
  • Све ставке у низу
  • и још!

За сваки: Основни примери

Ови примери ће показати како да подесите петље За сваку петљу да пролазе кроз различите врсте објеката.

Петља кроз ћелије

Ова процедура ће проћи кроз сваку ћелију у опсегу А1: А10, постављајући ћелију на њено право једнаку са собом.

12345678 Суб ФорЕацхЦелл ()Дим Целл Ас РангеЗа сваку ћелију у листовима ("Лист1"). Распон ("А1: А10")Целл.Оффсет (0, 1) .валуе = Целл.валуеСледећа ћелијаЕнд Суб

Прођите кроз листове

Ова процедура ће проћи кроз сваки лист у радној свесци, откривајући сваки лист.

12345678 Суб ФорЕацхСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у листовимавс.Висибле = ТачноСледећи листЕнд Суб

Прођите кроз радне свеске

Ова процедура ће проћи кроз сваку радну свеску, затварајући сваку.

12345678 Суб ФорЕацхВоркбоокс ()Дим вб Као радна свескаЗа сваку вб у радним свескамавб.ЦлосеНект вбЕнд Суб

Петље кроз облике

Ова процедура ће проћи кроз сваки облик у Схеет1, бришући сваки.

12345678 Суб ФорЕацхСхапе ()Дим Схп Ас СхапеЗа сваки Схп Ин Схеетс ("Схеет1"). ОблициСхп.ДелетеСледећи ШпЕнд Суб

Лооп Тхроугх Цхартс

Ова процедура ће проћи кроз сваки графикон у листу 1, брисањем сваког.

12345678 Суб ФорЕацхЦхартс ()Дим цхт Ас ЦхартОбјецтЗа сваки цхт Ин Схеетс ("Схеет1"). ЦхартОбјецтсцхт.ДелетеНект цхтЕнд Суб

Прођите кроз изведене табеле

Ова процедура ће проћи кроз сваку изведену табелу у Схеет1, бришући сваку

12345678 Суб ФорЕацхПивотТаблес ()Дим пвт Ас ПивотТаблеЗа сваки пвт у табелама („лист1“). Заокретне табелепвт.ЦлеарТаблеНект пвтЕнд Суб

Петље кроз табеле

Ова процедура ће проћи кроз сваку табелу у листу 1, бришећи сваку.

12345678 Суб ФорЕацхТаблес ()Дим тбл Као ЛистОбјецтЗа сваки тбл Ин Схеетс ("Схеет1"). ЛистОбјецтстбл.ДелетеНект тблЕнд Суб

Петље кроз ставке у низу

Ова процедура ће проћи кроз сваку ставку у низу, приказати сваку вредност у пољу за поруке,

12345678910 Суб ФорЕацхИтемИнАрраи ()Дим аррВалуе Ас ВариантПригуши ставку као варијантуаррВалуе = Поље ("Ставка 1", "Ставка 2", "Ставка 3")За сваку ставку у аррВалуеМсгБок ИтемСледећа ставкаЕнд Суб

Петља кроз бројеве

Ова процедура ће проћи кроз сваки број у низу, приказати сваку вредност у пољу за поруке,

12345678910111213 Суб ФорЕацхНумберИнНумберс ()Дим аррНумбер (1 То 3) Ас ИнтегерДим нум Ас ВариантаррНумбер (1) = 10аррНумбер (2) = 20аррНумбер (3) = 30За сваки број У аррНумберМсгбок НумНект нумЕнд Суб

За сваког градитеља петљи

Примери у овом чланку направљени су помоћу Лооп Буилдер у нашем ВБА додатак: АутоМацро.

Тхе Лооп Буилдер чини веома лаким генерисање кода за пролаз кроз објекте. АутоМацро садржи и многе друге Генератори кодова, опсежан Библиотека кодова, и моћан Алати за кодирање.

За сваку - Ако

Такође можете користити Иф наредбе унутар петљи за тестирање да ли објекти задовољавају одређене критеријуме, само извођење радњи на оним објектима који испуњавају критеријуме. Ево примера проласка кроз сваку ћелију у опсегу:

За сваку ћелију у домету - Ако

1234567891011121314 Суб Иф_Лооп ()Дим Целл ас РангеЗа сваку ћелију у домету ("А2: А6")Ако је Целл.Валуе> 0 ТадаЦелл.Оффсет (0, 1) .Валуе = "Позитивно"ЕлсеИф Целл.Валуе <0 ЗатимЦелл.Оффсет (0, 1) .Валуе = "Негативно"ИначеЦелл.Оффсет (0, 1) .Валуе = "Нула"Крај АкоСледећа ћелијаЕнд Суб

За сваки уобичајени пример

Затворите све радне свеске

Ова процедура ће затворити све отворене радне свеске, чувајући измене.

123456789 Суб ЦлосеАллВоркбоокс ()Дим вб Као радна свескаЗа сваку вб у радним свескамавб.Цлосе СавеЦхангес: = ТачноНект вбЕнд Суб

Сакриј све табеле

Ова процедура ће сакрити све радне листове.

12345678 Суб ХидеАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у листовимавс.Висибле = клСхеетХидденНект всЕнд Суб

Откриј све табеле

Ова процедура ће открити све радне листове.

12345678 Суб УнхидеАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у листовимавс.Висибле = клСхеетВисиблеНект всЕнд Суб

Заштитите све листове

Ова процедура ће заштитити све радне листове.

12345678 Суб ПротецтАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у листовимавс.Протецт Пассворд: = "…"Нект всЕнд Суб

Уклоните заштиту са свих табела

Ова процедура ће уклонити заштиту са свих радних листова.

12345678 Под УнпротецтАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у листовимавс.Унпротецт Пассворд: = "…"Нект всЕнд Суб

Избришите све облике на свим радним листовима

Овај поступак ће избрисати све облике у радној свесци.

123456789101112 Суб ДелетеАллСхапесОнАллВорксхеетс ()Затамњени лист као радни листДим Схп Ас СхапеЗа сваки вс у листовимаЗа сваки Схп У вс.СхапесСхп.ДелетеСледећи ШпНект всЕнд Суб

Освежите све изведене табеле

Ова процедура ће освежити све изведене табеле на листу.

12345678 Суб РефресхАллПивотТаблес ()Дим пвт Ас ПивотТаблеЗа сваки пвт у табелама („Лист1“). Заокретне табелепвт.РефресхТаблеНект пвтЕнд Суб

Коришћење За сваког у Аццесс ВБА

Петља Фор Еацх функционише на исти начин у Аццесс ВБА као и у Екцел ВБА. Следећи пример ће уклонити све табеле у тренутној бази података.

123456789 Суб РемовеАллТаблес ()Дим тдф Ас ТаблеДефДим дбс као база податакаСет дбс = ЦуррентДбЗа сваки тдф У дбс.ТаблеДефсДоЦмд.ДелетеОбјецт тдф.НамеЛоопПоставите дбс = НиштаЕнд Суб

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave