Excel VBA Course Notes: 2. Using Loops. (File: VBA02 Loops.xls). :K\ /RRSV".
The purpose of a loop is to get Excel to repeat a piece of code a certain number
of ...
(;&(/9%$
86,1*/2236
([FHO9%$&RXUVH1RWHV8VLQJ/RRSV )LOH9%$/RRSV[OV :K\/RRSV"
7KHSXUSRVHRIDORRSLVWRJHW([FHOWRUHSHDWDSLHFHRIFRGHDFHUWDLQQXPEHURIWLPHV+RZPDQ\WLPHVWKHFRGH JHWVUHSHDWHGFDQEHVSHFLILHGDVDIL[HGQXPEHUHJGRWKLVW LPHV RUDVDYDULDEOHHJGRWKLVIRUDVPDQ\ WLPHVDVWKHUHDUHURZVRIGDWD
/RRSVFDQEHFRQVWUXFWHGPDQ\GLIIHUHQWZD\VWRVXLWGLIIHUHQWFLUFXPVWDQFHV2IWHQWKHVDPHUHVXOWFDQEHREWDLQHG LQGLIIHUHQWZD\VWRVXLW\RXUSHUVRQDOSUHIHUHQFHV7KH VHH[HUFLVHVGHPRQVWUDWHDVHOHFWLRQRIGLIIHUHQWZD\VWRXVH ORRSV
7KHUHDUHWZREDVLFNLQGVRIORRSVERWKRIZKLFKDUHGHPRQVWUDWHGKHUH 'R«/RRS DQG)RU«1H[W ORRSV7KHFRGH WREHUHSHDWHGLVSODFHGEHWZHHQWKHNH\ZRUGV
2SHQWKHZRUNERRN 9%$/RRSV[OV DQGWDNHDORRNDWWKHIRXUZRUNVKHHWV(DFKFRQWDLQVWZRFROXPQVRIQXPEHUV FROXPQV$DQG% 7KHUHTXLUHPHQWLVWRFDOFXODWHDQDYHUDJHIRUWKHQXPEHUVLQHDFKURZXVLQJD9%$PDFUR 1RZRSHQWKH9LVXDO%DVLF(GLWRU $OW) DQGWDNHDORRNDWWK HFRGHLQ0RGXOH@5&>@ $FWLYH&HOO2IIVHW 6HOHFW /RRS8QWLO ,V(PSW\$FWLYH&HOO2IIVHW (QG6XE
7KLVPDFURSODFHVDIRUPXODLQWRWKHDFWLYHFHOODQGPRYHVLQWRWKHQH[WFHOOGRZQ,WXVHV /RRS8QWLO WRWHOO([FHOWR NHHSUHSHDWLQJWKHFRGH XQWLO WKHFHOOLQWKHDGMDFHQWFROXPQFROXPQ' LVHPSW\,QRWKHUZRUGVLWZLOONHHSRQ UHSHDWLQJDVORQJDVWKHUHLVVRPHWKLQJLQFROXPQ' 'HOHWHWKHGDWDIURPFHOOV && DQGUHDG\IRUWKHQH[WH[HUFLVH
([HUFLVH'R:KLOH«/RRS
7KHREMHFWRIWKLVPDFURLVWRUXQGRZQFROXPQ&DVIDUDVLVQHFHVVDU\SXWWLQJDFDOFXODWLRQLQHDFKFHOODVIDUDVLV QHFHVVDU\ 2Q6KHHWVHOHFWFHOO& DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUXQVDVORQJDVWKHUHLVVRPHWKLQJLQWKHQH[WFROXPQ 'R:KLOH ,V(PSW\$FWLYH&HOO2IIVHW )DOVH $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ $FWLYH&HOO2IIVHW 6HOHFW /RRS (QG6XE
7KLVPDFURGRHVWKHVDPHMREDVWKHODVWRQHXVLQ JWKHVDPHSDUDPHWHUVEXWVLPSO\H[SUHVVLQJWKHPLQDGLIIHUHQW ZD\,QVWHDGRIUHSHDWLQJWKHFRGH 8QWLO VRPHWKLQJRFFXUVLWGRHVVRPHWKLQJ :KLOH VRPHWKLQJLVWKHFDVH,WXVHV 'R :KLOH WRWHOO([FHOWRNHHSUHSHDWLQJWKHFRGH ZKLOH WKHUHLVVRPHWKLQJLQ WKHDGMDFHQWFROXPQDVRSSRVHGWR XQWLO WKHUHLVQRWKLQJWKHUH7KHIXQFWLRQ ,V(PSW\ )DOVH PHDQV,V1RW(PSW\ 'HOHWHWKHGDWDIURPFHOOV && DQGUHDG\IRUWKHQH[WH[HUFLVH 0DUWLQ*UHHQ
ZZZIRQWVWXIIFRP
RI
(;&(/9%$
86,1*/2236
([HUFLVH'R:KLOH1RW«/RRS
7KHREMHFWRIWKLVPDFURLVWRUXQGRZQFROX PQ&DVIDUDVLVQHFHVVDU\SXWWLQJDFDOFXODWLRQLQHDFKFHOODVIDUDVLV QHFHVVDU\ 2Q6KHHWVHOHFWFHOO& DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUXQVDVORQJDVWKHUHLVVRPHWKLQJLQWKHQH[WFROXPQ 'R:KLOH1RW ,V(PSW\$FWLYH&HOO2IIVHW $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ $FWLYH&HOO2IIVHW 6HOHFW /RRS (QG6XE
7KLVPDFURPDNHVH[DFWO\WKHVDPHGHFLVLRQDVWKHODVWRQHEXWMXVWH[SUHVVHVLWLQDGLIIHUHQWZD\ ,V(PSW\ )DOVH PHDQVWKHVDPHDV1RW,V(PSW\6RPHWLPHV\RXFDQ WVD\ZKDW\RXZDQWWRVD\RQHZD\VR9%$RIWHQRIIHUVDQ DOWHUQDWLYHV\QWD[ 'HOHWHWKHGDWDIURPFHOOV && DQGUHDG\IRUWKHQH[WH[HUFLVH
([HUFLVH,QFOXGLQJDQ,)VWDWHPHQW
7KHREMHFWRIWKLVPDFURLVDV EHIRUHEXWZLWKRXWUHSODFLQJDQ\GDWDWKDWPD\DOUHDG\EHWKHUH 0RYHWR6KHHWVHOHFWFHOO& DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUXQVDVORQJDVWKHUHLVVRPHWKLQJLQWKHQH[WFROXPQ
,WGRHVQRWFDOFXODWHDQDYHUDJHLIWKHUHLVDOUHDG\VRPHWKLQJLQWKH FHOO 'R ,I ,V(PSW\$FWLYH&HOO 7KHQ $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ (QG,I $FWLYH&HOO2IIVHW 6HOHFW /RRS8QWLO ,V(PSW\$FWLYH&HOO2IIVHW (QG6XE
7KHSUHYLRXVPDFUR VWDNHQRDFFRXQWRIDQ\SRVVLEOHFRQWHQWVWKDWPLJKWDOUHDG\EHLQWKHFHOOVLQWRZKLFKLWLVSODFLQJ WKHFDOFXODWLRQV7KLVPDFURXVHVDQ,)VWDWHPHQWWKDWWHOOV([FHOWRZULWHWKHFDOFXODWLRQ RQO\LI WKHFHOOLVHPSW\7KLV SUHYHQWVDQ\H[LVWLQJGDWDIU RPEHLQJRYHUZULWWHQ7KHOLQHWHOOLQJ([FHOWRPRYHWRWKHQH[WFHOOLV RXWVLGH WKH,) VWDWHPHQWEHFDXVHLWKDVWRGRWKDWDQ\ZD\
([HUFLVH$YRLGLQJ(UURUV
7KLVPDFURWDNHVWKH,)VWDWHPHQWDVWDJHIXUWKHUDQGGRHVQ WWU\WRFDOFXODWHDQDYHUDJHRIFH OOVWKDWDUHHPSW\ )LUVWORRNDWWKHSUREOHP0RYHWR 6KHHWVHOHFWFHOO& DQGUXQWKHPDFUR /RRS
1RWHWKDWEHFDXVHVRPHRIWKHSDLUVRIFHOOVLQFROXPQV$DQG%DUHHPSW\WKH $9(5$*(IXQFWLRQWKURZVXSD ',9HUURUWKH$YHUDJHIXQFWLRQDGGVWK HQXPEHUVLQWKHFHOOVWKHQGLYLGHVE\WKHQXPEHURIQXPEHUV LIWKHUH DUHQ WDQ\QXPEHUVLWWULHVWRGLYLGHE\]HURDQG\RXFDQ WGRWKDW 'HOHWHWKHFRQWHQWVRIFHOOV && DQG&&6HOHFWFHOO& DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUXQVDVORQJDVWKHUHLVVRPHWKLQJLQWKHQH[WFROXPQ
,WGRHVQRWFDOFXODWHDQDYHUDJHLIWKHUHLVDOUHDG\VRPHWKLQJLQWKHFHOO
QRULIWKHUHLVQRGDWDWRDYHUDJHWRDYRLG',9HUURUV 'R ,I ,V(PSW\$FWLYH&HOO 7KHQ ,I ,V(PSW\$FWLYH&HOO2IIVHW $QG ,V(PSW\$FWLYH&HOO2IIVHW 7KHQ $FWLYH&HOO9DOXH (OVH $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ (QG,I (QG,I $FWLYH&HOO2IIVHW 6HOHFW /RRS8QWLO ,V(PSW\$FWLYH&HOO2IIVHW (QG6XE 0DUWLQ*UHHQ
ZZZIRQWVWXIIFRP
RI
(;&(/9%$
86,1*/2236
1RWHWKDWWKLVWLPHWKHUHDUHQRHUURUPHVVDJHVEHFDXVH([FHOKDVQ WWULHGWRFDOFXODWHDYHUDJHVRIQXPEHUVWKDW DUHQ WWKHUH
,QWKLVPDFURWKHUHLVDVHFRQG,)VWDWHPHQW LQVLGH WKHRQHWKDWWHOOV([FHO WRGRVRPHWKLQJRQO\LIWKHFHOOLVHPSW\ 7KLVVHFRQG,)VWDWHPHQWJLYHVH[FHODFKRLFH,QVWHDGRIDVLPSOH ,I WKHUHLVDQ,I DQGDQ(OVH+HUH VKRZ([FHO UHDGVLWVLQVWUXFWLRQV«
,IWKHFHOOKDVDOUHDG\JRWVRPHWKLQJLQJRWRWKHQH[WFHOO%XWLIWK HFHOOLVHPSW\ORRNDWWKHFRUUHVSRQGLQJFHOOVLQ FROXPQV$DQ%DQGLIWKH\DUHERWKHPSW\ZULWHQRWKLQJ 2WKHUZLVHZULWHWKHIRUPXODLQWKHFHOO7KHQPRYHRQ WRWKHQH[WFHOO
([HUFLVH)RU«1H[W/RRS
,I\RXNQRZRUFDQJHW9%(WRILQGRXW KRZPDQ\WLPHVWRUHSHDWDEORFNRIFRGH\RXFDQXVHD )RU«1H[W ORRS 0RYHWR6KHHWVHOHFWFHOO& DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUHSHDWVIRUDIL[HGQXPEHURIWLPHVGHWHUPLQHGE\WKHQXPEHURIURZV
LQWKHUDQJH 'LP L$V ,QWHJHU )RU L 7R 6HOHFWLRQ&XUUHQW5HJLRQ5RZV&RXQW $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ $FWLYH&HOO2IIVHW 6HOHFW 1H[W L (QG6XE
7KLVPDFURGRHVQ WPDNHXVHRIDQDGMDFHQWFROXPQRIFHOOVOLNHWKHSUHYL RXVRQHVKDYHGRQHWRNQRZZKHQWRVWRS ORRSLQJ,QVWHDGLWFRXQWVWKHQXPEHURIURZVLQWKHFXUUHQWUDQJHRIGDWDDQGXVHVWKH )RU«1H[W PHWKRGWRWHOO ([FHOWRORRSWKDWQXPEHURIWLPHVPLQXVRQHEHFDXVHZKHQ9%$FRXQWVLWVWDUWVDW]HUR
([HUFLVH*HWWLQJWKH5HIHUHQFH)URP6RPHZKHUH(OVH 6HOHFWFHOO* DQGUXQWKHPDFUR /RRS +HUH VWKHFRGH
6XE /RRS
7KLVORRSUHSHDWVDIL[HGQXPEHURIWLPHVJHWWLQJLWVUHIHUHQFHIURPHOVHZKHUH 'LP L$V,QWHJHU 'LP LQW5RZ&RXQW$V,QWHJHU LQW5RZ&RXQW 5DQJH$ &XUUHQW5HJLRQ5RZV&RXQW )RU L 7R LQW5RZ&RXQW $FWLYH&HOO)RUPXOD5& $YHUDJH5&>@5&>@ $FWLYH&HOO2IIVHW 6HOHFW 1H[W L (QG6XE