Paano magagamit ang VBA Para sa bawat Loop? (kasama ang Mga Halimbawa ng Excel)
Excel VBA Para sa bawat Loop
VBA Para sa bawat Loop dumadaan sa lahat ng koleksyon ng mga bagay o item at nagsasagawa ng katulad na hanay ng mga aktibidad. Isasaalang-alang nito ang lahat ng magagamit na tinukoy na mga bagay at magsasagawa ng itinuro na aktibidad sa bawat bagay.
Sa VBA ipinag-uutos na maunawaan ang mga loop sa VBA. Pinapayagan ka ng isang loop na magsagawa ng parehong uri ng aktibidad para sa maraming mga cell o bagay sa excel. Sa artikulo ngayon, magtutuon kami ng pansin sa Para sa bawat mekanismo ng Loop.
Syntax
Para sa bawat Loop ay maaaring loop sa pamamagitan ng lahat ng mga hanay ng mga koleksyon ng mga bagay o item. Ang isang koleksyon ay walang iba kundi ang "Lahat ng binuksan na mga workbook", "Lahat ng mga worksheet sa isang workbook", "Lahat ng koleksyon ng mga hugis at tsart sa workbook".
Tingnan natin ang syntax.
Para sa bawat isa Bagay Sa Koleksyon Ano ang Dapat Gawin? Susunod Bagay
Halimbawa, Mayroon kang 10 sheet sa iyong workbook at nais mong itago ang lahat ng mga worksheet maliban sa isang nasa iyo. Maaari mo bang itago nang manu-mano, oo maaari mo ngunit paano kung mayroon kang 100 sheet tulad nito -pagpapalagay na gawain na dapat gawin. Maaari mo itong gawin gamit ang bawat loop.
Paano gamitin ang Para sa bawat Loop sa VBA? (Mga Halimbawa)
Maaari mong i-download ang VBA na Ito Para sa bawat Template ng Loop dito - VBA Para sa bawat Template ng LoopHalimbawa # 1 - Magsingit ng Parehong Tekstong teksto sa Lahat ng Mga Sheet
Makikita natin kung paano gamitin ang PARA SA BAWAT sa VBA na may isang simpleng halimbawa. Ipagpalagay na mayroon kang 5 mga worksheet sa isang workbook at nais mong ipasok ang salitang "Kamusta" sa lahat ng mga worksheet sa cell A1.
Magagawa natin ito sa PARA SA BAWAT LOOP. Ang isang bagay na kailangan mong tandaan dito ay talagang ginagawa namin ang aktibidad na ito sa bawat worksheet, hindi sa parehong worksheet. Sundin ang mga hakbang sa ibaba upang isulat ang VBA code.
Hakbang 1: Simulan ang excel macro.
Code:
Sub Para sa_Each_Example1 () Tapusin ang Sub
Hakbang 2: Dahil tumutukoy kami sa mga worksheet na idineklara ang variable bilang "Worksheet".
Code:
Sub Para sa_Each_Example1 () Dim Ws Bilang Worksheet End Sub
Hakbang 3: Gumagamit na ngayon PARA SA BAWAT NG LOOP kailangan nating mag-refer sa bawat worksheet sa aktibong workbook.
Code:
Sub For_Each_Example1 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Mga Worksheet Susunod na Ws End Sub
Hakbang 4: Ngayon isulat kung ano ang nais naming gawin sa bawat worksheet. Sa bawat worksheet, kailangan nating ilagay ang salitang "Hello" sa cell A1.
Code:
Sub For_Each_Example1 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Worksheets Ws.Range ("A1"). Value = "Hello" Susunod na Ws End Sub
Hakbang 5: Manu-manong patakbuhin ang code na ito sa pamamagitan ng pagpipilian o pindutin ang shortcut key F5, hindi alintana kung gaano karaming mga sheet ang mayroon ka nito ay ipasok ang Salitang "Kamusta" sa lahat ng mga worksheet.
Halimbawa # 2 - Itago ang Lahat ng mga Sheet
Tulad ng sinabi sa mas maaga sa post kung ano kung mayroon kang daan-daang mga sheet upang itago maliban sa kung nasaan ka. Paggamit Para sa bawat loop, maaari naming itago ang lahat ng mga sheet sa excel.
Hakbang 1: Simulan ang macro sa iyong pangalan.
Code:
Sub For_Each_Example2 () End Sub
Hakbang 2: Ipahayag ang variable bilang "Ws”.
Code:
Sub Para sa_Each_Example2 () Dim Ws Bilang Worksheet End Sub
Hakbang 3: Ngayon sa bawat worksheet kung ano ang kailangan mong gawin ay itago ang sheet.
Code:
Sub For_Each_Example2 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Worksheets Ws.Visible = xlSheetVeryHidden Susunod Ws End Sub
Hakbang 4: Ngunit kung patakbuhin mo ang nasa itaas na code susubukan nitong itago ang lahat ng mga sheet ngunit kailangan ng excel ng kahit isang sheet lamang upang makita. Kaya kailangan nating sabihin kung aling sheet ang hindi maitago.
Code:
Sub For_Each_Example2 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Mga Worksheet Kung Ws.Name na "Pangunahing Sheet" Pagkatapos Ws.Visible = xlSheetVeryHidden End Kung Susunod Ws End Sub
Ang simbolo ng operator nangangahulugang hindi katumbas sa VBA.
Kaya't sinabi ng code kapag nag-loop ka sa lahat ng mga worksheet sa aktibong workbook na itago lamang kung ang pangalan ng sheet ay hindi katumbas ng sheet name ng Main Sheet.
Maaari itong magawa sa pamamagitan ng paggamit ng pahayag na KUNG sa VBA. Isulat ang code bilang IF Ws.Name na "Main Sheet" Pagkatapos itago o kung ito ay katumbas ng sheet name na "Main Sheet" pagkatapos ay huwag magtago.
Hakbang 5: Patakbuhin ngayon ang code gamit ang F5 key o manu-mano pagkatapos, itatago nito ang lahat ng worksheet maliban sa isang pinangalanang "Main Sheet".
Halimbawa # 3 - Itago ang Lahat ng Mga Sheet
Nakita namin kung paano itago ang lahat ng mga sheet maliban sa isa na narating namin. Katulad nito, maaari rin nating ilabas ang lahat ng mga worksheet.
Kailangan lang naming baguhin ang code mula sa xlSheetVeryHidden sa xlSheetVisible.
Code:
Sub For_Each_Example3 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Worksheets Ws.Visible = xlSheetVisible Susunod Ws End Sub
Dito hindi namin kailangan ang kundisyon KUNG dahil tinatanggal namin ang lahat ng sheet. Kung hindi mo nais na ilabas ang anumang tukoy na sheet pagkatapos ay maaari mong gamitin ang kundisyon na KUNG at ibigay ang pangalan ng sheet.
Halimbawa # 4 - Protektahan at Alisin ang Proteksyon ng Lahat ng mga Sheet
Protektahan ang Lahat ng Mga Sheet: Maaari naming protektahan ang lahat ng mga sheet sa workbook sa pamamagitan lamang ng isang piraso ng code. Ang lahat ng mga code ay pareho lamang ang kailangan nating gawin dito ay sa halip na Ws. Nakikita kailangan nating ilagay ang code Ws. Protektahan at i-type ang password.
Code:
Sub For_Each_Example4 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Worksheets Ws. Protect Password: = "Excel @ 2019" Susunod na Ws End Sub
Alisan ng proteksyon ang Lahat ng Mga Sheet: Sa isang katulad na tala, gamit ang vba maaari din naming protektahan ang lahat ng mga sheet na kung saan protektado sa workbook. Kailangan lang naming ilagay ang salitang Unprotect at password.
Code:
Sub For_Each_Example6 () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Worksheets Ws.Unprotect Password: = "Excel @ 2019" Susunod na Ws End Sub
Bagay na dapat alalahanin
- Ang bawat isa ay para sa koleksyon ng mga bagay.
- Isasaalang-alang nito ang lahat ng tinukoy na mga bagay sa tinukoy na workbook.
- Habang idinedeklara ang variable na kailangan namin sa aling bagay ang tinutukoy namin. Halimbawa ng Worksheet, Workbook, Chart, atbp.