Како се користи ВБА за сваку петљу? (са Екцел примерима)

Преглед садржаја

Екцел ВБА за сваку петљу

ВБА за сваку петљу пролази кроз сву колекцију предмета или предмета и изводи сличан скуп активности. Узимаће се у обзир сви доступни наведени објекти и извршаваће се задате активности у сваком објекту.

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

Синтакса

За сваку петљу може се петљати кроз све постављене колекције предмета или предмета. Група није ништа друго до „Све отворене радне свеске“, „Сви радни листови у радној свесци“, „Сва колекција облика и графикона у радној свесци“.

Погледајмо синтаксу.

Шта треба учинити за сваки предмет у колекцији? Следећи објекат

На пример, у радној свесци имате 10 листова и желите сакрити све радне листове, осим оног у коме се налазите. Можете ли сакрити ручно? Да, можете, али шта ако имате 100 таквих листова? Није ли то досадан и дуготрајан задатак? То можете учинити помоћу сваке петље.

Како се користи за сваку петљу у ВБА? (Примери)

Пример # 1 - Уметните исти текст у све табеле

Видећемо како се ЗА СВАКОГА користи у ВБА на једноставном примеру. Претпоставимо да имате 5 радних листова у радној свесци и да желите да уметнете реч „Здраво“ у све радне листове у ћелији А1.

То можемо учинити са ФОР ЕАЦХ ЛООП. Овде морате имати на уму да ову активност обављамо на сваком радном листу, а не на истом радном листу. Следите кораке у наставку да бисте написали ВБА код.

Корак 1: Покрените екцел макро.

Шифра:

Суб Фор_Еацх_Екампле1 () Енд Суб

Корак 2: Будући да се позивамо на радне листове, прогласите променљиву као „Радни лист“.

Шифра:

Суб Фор_Еацх_Екампле1 () Дим Вс ас Ворксхеет Енд Суб

Корак 3: Сада, користећи ФОР ЕАЦХ ЛООП, морамо упутити сваки радни лист у активну радну свеску.

Шифра:

Под Фор_Еацх_Екампле1 () Затамни В као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Нект Вс Енд Суб

Корак 4: Сада напишите на сваки радни лист шта желимо да радимо. У сваки радни лист треба да ставимо реч „Здраво“ у ћелију А1.

Шифра:

Под Фор_Еацх_Екампле1 () Затамни В као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Вс.Ранге ("А1"). Валуе = "Хелло" Следећи Вс Енд Суб

Корак 5: Сада покрените овај код ручно преко опције или притисните тастер пречице Ф5. Није важно колико листова имате; убациће реч „Здраво“ у све радне листове.

Пример # 2 - Сакриј све табеле

Као што је речено раније у посту, шта ако имате стотине листова за сакривање, осим оног у коме се налазите. Користећи За сваку петљу можемо сакрити све листове у екцелу.

Корак 1: Покрените макро са својим именом.

Шифра:

Суб Фор_Еацх_Екампле2 () Крај Суб

Корак 2: Прогласите променљиву као „ Вс“.

Шифра:

Суб Фор_Еацх_Екампле2 () Дим Вс ас Ворксхеет Енд Суб

Корак 3: Сада на сваком радном листу треба да сакријете лист.

Шифра:

Суб Фор_Еацх_Екампле2 () Затамни Вс као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Вс.Висибле = клСхеетВериХидден Нект Вс Енд Суб

Корак 4: Али ако покренете горњи код, покушаће да сакрије све листове, али Екцелу је потребан барем један лист. Дакле, морамо рећи који лист не треба сакрити.

Шифра:

Суб Фор_Еацх_Екампле2 () Затамни Вс као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Иф Вс.Наме "Маин Схеет" тхен Вс.Висибле = клСхеетВериХидден Енд Иф Нект Вс Енд Суб

Тхе симбол оператер средство није једнака у ВБА .

So code says when you are looping through all the worksheets in the active workbook, hide only if the sheet name is not equal to the sheet name of Main Sheet.

This can be done by using the IF statement in VBA. Write the code as IF Ws.Name “Main Sheet” Then hide or if it is equal to the sheet name “Main Sheet,” then don’t hide.

Step 5: Now run the code using the F5 key or manually. Then, it will hide all the worksheets except the one named “Main Sheet.”

Example #3 - Unhide All the Sheets

We have seen how to hide all sheets except the one we are in. Similarly, we can unhide all the worksheets as well.

We need to change the code from xlSheetVeryHidden to xlSheetVisible.

Code:

Sub For_Each_Example3() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet, then you can use the IF condition and supply the sheet name.

Example #4 - Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the principle is the same only thing we need to do here is instead of Ws. Visible, we need to put the code Ws. Protect and type the password.

Code:

Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub

Опозовите заштиту свих листова: На сличној белешци, помоћу ВБА, такође можемо уклонити заштиту свих листова заштићених у радној свесци. Морамо ставити реч Унпротецт и лозинку.

Шифра:

Суб Фор_Еацх_Екампле6 () Затамни В као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Вс.Унпротецт Пассворд: = "Екцел @ 2019" Следећи Вс Енд Суб

Ствари које треба запамтити

  • Свака је за сакупљање предмета.
  • Узеће у обзир све наведене објекте у наведеној радној свесци.
  • Док декларишемо променљиву, требамо на који се објекат позивамо - на пример, радни лист, радна свеска, графикон итд.

Занимљиви Чланци...