Paano Gamitin ang Para sa Bawat Loop sa Excel VBA

Paano Gamitin ang Para sa Bawat Loop sa Excel VBA
Ang mga mambabasang tulad mo ay tumutulong sa pagsuporta sa MUO. Kapag bumili ka gamit ang mga link sa aming site, maaari kaming makakuha ng isang affiliate na komisyon. Magbasa pa.

Ang mga loop at VBA ay magkasama, at para sa isang magandang dahilan din. Kapag nakikitungo sa mga bagay sa Microsoft Office tulad ng mga workbook, worksheet, at mga hanay, makakatulong sa iyo ang mga loop na magpalipat-lipat sa bawat isa sa kanila nang madali.





Habang mas marami o mas kaunti ang lahat ng mga VBA loop ay gumagana nang maayos sa mga bagay, ang 'para sa bawat' loop ay isa sa mga pinakamahusay na opsyon upang gumana sa mga koleksyon ng bagay. Kung ikaw ay bago sa Excel VBA at naghahanap upang makabisado ang para sa bawat loop, maaari kang matuto mula sa ilan sa mga halimbawang ito nang mabilis. Narito ang lahat ng kailangan mong malaman tungkol sa quintessential loop na ito.





MAKEUSEOF VIDEO OF THE DAY MAG-SCROLL PARA MAGPATULOY SA NILALAMAN

Para sa Syntax ng Bawat Loop

Ang para sa bawat loop syntax ay medyo katulad sa karaniwan para sa loop sa Excel VBA. Narito ang syntax:





 For each variable_name in object_collection 

[statement]

[statement]

[statement]

Next variable_name

Ang loop ay nagsisimula sa 'para sa bawat' keyword; maaari kang gumamit ng anumang variable na pangalan, na sinusundan ng koleksyon ng bagay. Ang object sa para sa bawat loop ay maaaring mga cell, range, sheet, at kahit na mga workbook. Ganyan ang kagandahan ng loop na ito; binibigyan ka nito ng kakayahang umangkop upang gumana sa iba't ibang mga koleksyon ng Excel.

Ang loop ay umiikot sa bawat halaga ng koleksyon at iniimbak ang reference sa tinukoy na pangalan ng variable. Pagkatapos ng pagpapatupad, ipapatupad ng VBA ang mga nakaimbak na pahayag sa loob ng loop at lilipat sa susunod na bagay sa koleksyon (ang susunod kapaki-pakinabang ang keyword dito). Unawain natin ang istraktura ng code na may pangunahing halimbawa.



Paano Gamitin ang Para sa Bawat Loop sa Excel VBA

Ipagpalagay na gusto mong mag-print ng numero sa mga cell A1 hanggang A10. Ang pinakamahusay na diskarte ay ang paggamit ng para sa bawat loop na may function na hanay at hayaan ang code na gawin ang kailangan. Narito kung paano mo magagawa ang simpleng gawaing ito:

  1. Buksan ang VBA code editor sa pamamagitan ng pagpindot Lahat + F11 .
  2. Magpasok ng module sa pamamagitan ng pag-click sa Module opsyon sa loob ng Ipasok tab.   Excel sheet na may output ng column's code editor
  3. Gumawa ng sub-routine gamit ang sub() command sa window ng module ng editor ng code. Tiyaking magtatalaga ka ng makabuluhang pangalan sa sub-routine. Para sa halimbawang ito, maaari mong gamitin ang pangalan for_each_loop .

Ngayon na ang mga pangunahing kaalaman ay wala na, oras na upang simulan ang pagsulat ng code. Sa loob ng sub-routine, i-type ang mga sumusunod na command:





 Dim cell as range 

For each cell in Sheets("Sheet1").Range("A1:A10")

cell.value = 10

Next cell

Kapag nag-execute ang code, ang c variable ay mag-iimbak ng halaga ng A1. Susunod, habang nagpapatuloy ito sa pahayag sa loob ng loop, sinusuri nito ang command at naglalagay ng halaga na 10 sa tinukoy na cell, ibig sabihin, cell A1.

Sa wakas, habang lumilipat ito sa Susunod na keyword, lilipat ito sa susunod na halaga, ibig sabihin, cell A2. Ang loop ay tumatakbo hanggang umabot ito sa cell A10. Ito ang huling output:





kung paano i-off ang monitor ng laptop
  VBA code snippet sa loob ng editor at excel na output

Paggamit ng Loop With Objects: Mga Cell, Sheet, at Workbook

Ang Excel ay may tatlong pangunahing uri ng bagay na regular mong ginagamit. Ito ay mga cell, sheet, at workbook. Narito kung paano mo magagamit ang loop sa lahat ng tatlong uri ng bagay.

Paggawa sa Mga Cell at Loop Magkasama

Ipagpalagay na gusto mong magdagdag ng value at ilang kundisyon sa pag-format sa isang hanay ng mga cell sa Sheet1. Bilang unang hakbang, kailangan mong tukuyin ang mga kundisyon sa loob ng loop, na sinusundan ng mga command sa pag-format.

I-type ang sumusunod na code sa loob ng sub-routine.

 Sub for_each_loop() 



Dim c As Range



For Each c In Sheets("Sheet1").Range("A1:A10")



With c

.Value = 10

.Font.Color = vbRed

.Font.Bold = True

.Font.Strikethrough = True



End With



Next c



End Sub
  VBA code snippet sa loob ng coding editor

Ang kasama Ang function ay kapaki-pakinabang kapag gumaganap ng maramihang mga function sa isang partikular na bagay. Dahil gusto mong magsagawa ng isang serye ng mga gawain gamit ang c variable, maaari mong pagsamahin ang lahat ng ito gamit ang isang with..end with function.

Tinutumbasan ng loop ang halaga ng c sa bawat halaga ng cell at inilalagay ang halaga bilang 10. Bukod pa rito, binabago nito ang kulay ng cell sa pula, pina-bold ang halaga, at tinatamaan ito. Kapag nakumpleto na nito ang lahat ng mga hakbang, lilipat ito sa susunod na tinukoy na halaga sa hanay.

Gamit ang Loop para Kontrolin ang Mga Sheet

Katulad ng halimbawa sa itaas, maaari mong gamitin ang para sa bawat loop upang makontrol ang mga sheet. Paano ang tungkol sa pagpapalit ng pangalan ng Sheet1 sa Sheet3 gamit ang VBA?

Maaari mong gamitin ang sumusunod na code upang palitan ang pangalan ng isang umiiral na worksheet sa Excel gamit ang VBA:

 Sub for_each_loop_sheets() 



For Each sht In ThisWorkbook.Sheets



If sht.Name = "Sheet1" Then



sht.Name = "Sheet3"



End If



Next sht



End Sub
  VBA code snippet sa loob ng editor

Ang code ay umiikot sa bawat sheet sa loob ng workbook at sinusuri ang pangalan ng bawat sheet. Kung makatagpo ito ng pangalang Sheet1, babaguhin ito sa Sheet3. Umuusad ito sa natitirang mga sheet, kung mayroon man, sa loob ng workbook. Kapag naabot na ng code execution ang huling sheet, lalabas ito sa loop at sa sub-routine.

Sa ilang iba pang karaniwang gamit, magagawa mo pagsamahin ang maraming worksheet gamit ang VBA at i-update ang nilalaman sa isang solong sheet gamit ang mga loop.

I-toggle ang Workbook Gamit ang Loop

Sa wakas, maaari mong gamitin ang para sa bawat loop upang magpalipat-lipat sa iba't ibang workbook at magsagawa ng mga partikular na gawain. Ipakita natin ang function na ito sa isang halimbawa.

Maaari mong gamitin ang mga utos ng VBA upang magdagdag ng tatlong bagong workbook at isara ang lahat ng mga bukas nang magkasama. Narito kung paano mo ito magagawa:

 Sub loop_wrkbook() 



Dim wrkbook as workbook



Workbooks.Add

Workbooks.Add

Workbooks.Add



For Each wrkbook In Workbooks



wrkbook.



Next wrkbook



End Sub