Công Thức & Hàm Excel

Embed Size (px)

Citation preview

  • 7/24/2019 Cng Thc & Hm Excel

    1/55

    CNG THC & HM EXC T H A M K H O T O N D I " N : E x c e l 9 7 - 2 0 0 7

    N g y 1 1 t h n g 4 n &m 2 0 0 9

    4. Hm t#&'nh ngh)a (User defined functions)

    Tc gi): Phan T+H,-ng (PhanTuHuong - GPE)T0ng h2p: phamnhukhang, ttphong2007 (GPE)

    Macro v VBA c*n b-n

    4.1. Ghi v th+c hi3n macro4.2. Cch th+c hi3n m5t macro 6.n gi)n4.3. S7a macro4.4. Ng8php VB (Visual Basic Grammar)4.5. S7d:ng gip 6c n&ng 6i?u khi@n trong VBA4.7. ViAt macro4.8. Tham chiAu 6An v vng4.9. CBu trc 6i?u [email protected]. H5p thoCi trong VBA4.11. Hnh 65ng lDp (Loop)

    M/t s2v d3v5hm t#t7o

    4.1. Ghi v th#c hi8n macroMacro l g?Macro l tEp h2p m5t s=cc dng l3nh.BCn s7d:ng ch>c n&ng Macro Recorder l m5t t,Fng hay 6@tGng b,-c th+c hi3n cc cng vExcel 6 hItr2ghi lCi (recorder) cc cng vi3c bCn 6 th+c hi3n v chJkhng ghi lCi khi bCn dV d:, m5t (cell) 6,2c chLn (selected) Fhi3n tCi sMkhng 6,2c ghi cho 6An khi bCn th+c hi3 cNng khng ghi lCi cc cng vi3c khi 6ang s7d:ng b)ng 6i?u khi@n (dialog box) cho 6An khi b

    Hnh 1: Th+c hi3n ghi macro

    Page 1 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    2/55

    Hnh 2: C7a s0Record Macro

    Trong su=t thOi gian ghi, macro 6 6,2c l,u lCi v-i tn xc 6Pnh trong module, module 6,2c tCcRa Workbook. Marco 6,2c ghi lCi c th@6,2c l,u trong This Workbook (Workbook hi3n hnh)trong Personal Macro Workbook (nh8ng macro sFh8u ring). Nh8ng l3nh (code) 6,2c l,u tro

    6?u s7d:ng 6,2c khi bCn mFExcel ra. Cc macro trong cc Workbook khc nhau c th@s7dmF(k@c)s7d:ng chng tGWorkbook khc).Si?u ki3n 6@c th@tiAn hnh ghi macro:1. B)ng tnh Excel hi3n hnh (Activate Excel).2. S7d:ng Workbook m-i.

    4.1.1. Ghi macro trong tr$9ng hu &'a ch? tuy8t &2i

    BCn hy ghi lCi macro trnh by tn bCn v 6Pa chJnh,sau:

    Trch:

    SDc 6i@m l k t+6Uu tin l cRa tn macro ph)i l ch8. Cn cc k t+khc c th@l ch8, s=6Dc bi3t nh,kho)ng tr=ng (Space), @, %, $, #, &, ... khng 6,2c chBp nhEn, bCn c th@dn

    1. Trong Tools/Macro, chLn Record New Macro (hnh 1).

    2.Trong Macro name: g Address_abs 6@6Dt tn macro 6 (hnh 2).

    Page 2 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    3/55

    Hnh 3: Qu trnh ghi

    Trch:

    Nh,vEy, macro c tn Address_abs 6 6,2c ghi lCi. Nh8ng m bCn 6 s7d:ng trong qu trtuy3t 6=i. V vEy, nh8ng trong Worksheet 6 sMth+c hi3n khi bCn cho chCy macro, tn, l-ptrong Worksheet.

    Ghi ch: BCn c th@l+a chLn tham chiAu t,.ng 6=i trong su=t qu trnh ghi macro. VBn 6?n

    4.1.2. Ch7y macro khi s=d3ng b-ng &i5u khiAn macro (Macro dialog box)

    3. Chuy@n sang Shortcut key: 6@tr=ng (sMth+c hi3n sau).4. Trong Store macro in: 6@mDc 6Pnh l This Workbook.5. Trong Description: bCn g n5i dung sauEnter address starting in cell B3

    6. BBm OK.7. Thanh Stop Recording sMxuBt hi3n. BCn c th@di chuy@n n 6An vPtr khc nAu thBy c8. Trong thanh Stop Recording, Bn vo nt Relative Reference cho mO6i (khng tc d:ng9. Trong Sheet1, bBm vo B3 v g tn bCn. Fd,-i g tn l-p, tiAp theo l tn tr,Ong.10. Cho ton b5cc ch86Em v nghing.11. BBm vo B6.12. Trong Stop Recording, bBm vo nt Stop Recording.

    Page 3 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    4/55

    BCn cho chCy macro trn tGSheet2 nh,sau:

    Trch:

    Sau 6 bCn sMthBy n5i dung FSheet2 gi=ng nh,FSheet1.

    Hnh 4: ChCy macro FSheet2

    Ghi ch: NAu bCn mu=n huVqu trnh chCy macro tr,-c khi kAt thc, Bn vo nt Esc.

    4.1.3. Ghi macro trong tr$9ng hu &'a ch? t$:ng &2i

    Macro Address_abs s7d:ng 6Pa chJ tuy3t 6=i. TiAp theo bCn sMtCo m5t macro cNng gi=ng ncells) c quan h3v-i vPtr cRa hoCt 65ng (active) trong qu trnh chCy, macro sMghi lCi qua

    Trch:

    1. ChLn sang Sheet2 v bBm vo no 6 ngoi B3.2. Trong menu Tools/Macro, chLn Macros (hnh 1).3. BBm vo macro c tn Address_abs trong danh sch macro (hnh 4).4. BBm vo nt Run.

    1. ChLn Sheet1.2. BBm vo B11.3. Trong menu Tools/Macro, chLn Record New Macros (hnh 1).4. Trong Macro name: g Address_Ref 6@6Dt tn macro 6 (hnh 2).5. Trong Shortcut key: G ch8A, nh,vEy phm tXt sMl Ctrl+Shift+A (NAu phm tXt bPtrb0sung thm phm Shift nh,tr,Ong h2p ny).

    6. Trong Store macro in: 6@mDc 6Pnh l This Workbook.7. Trong Description: bCn g n5i dung sauEnter address starting in activate cell position

    Page 4 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    5/55

    Microsoft Excel sMtiAp t:c ghi macro v-i quan h3t,.ng 6=i cho 6An khi no thot khYi Micros

    Reference.

    Trch:

    Ghi ch: NAu bCn mu=n macro chLn 6Dc bi3t, 6Uu tin chLn 6Uu (active cell), sau 6 chLnchLn hIn h2p 6Pa chJtuy3t 6=i v t,.ng 6=i trong qu trnh ghi macro.S@s7d:ng tham chiAu t,.ng 6=i trong su=t qu trnh ghi macro, nt Relative Reference lunS@s7d:ng tham chiAu tuy3t 6=i trong su=t qu trnh ghi macro, nt Relative Reference lun

    4.1.4. Dng phm tBt &Ath#c hi8n m/t macro (shortcut key)

    Macro Address_Refc th@th+c hi3n nh,m t)trong m:c 2.2. Lc tr,-c phm tXt 6 6,2c Bd:ng ph,.ng php thay thAny:1. TCi Sheet2 bCn chLn vo 1 (v d: H14).2. Zn t0h2p phm Ctrl+Shift+A. Khi 6 tn v 6Pa chJsMxuBt hi3n d,-i 6.

    3. BCn hy th7th+c hi3n lCi macro 6 tCi cc vPtr khc trong Sheet2.

    Top

    4.2. Cch th#c hi8n m/t macro &:n gi-n

    D,-i 6y l cc ph,.ng th>c 6@th+c hi3n macro, bCn c th@cho th+c hi3n macro tGcc 6=i t

    Trch:

    4.2.1. Th#c hi8n macro tCm/t &2i t$

  • 7/24/2019 Cng Thc & Hm Excel

    6/55

    Sau 6, bCn cho th+c hi3n th7macro:

    Trch:

    Ghi ch: NAu bCn mu=n di chuy@n 6=i t,2ng 6[hoC(c macro) ra khYi chIkhc trong workshbBm tri chu5t th macro sMchCy). Cn nAu bCn mu=n thay 60i macro khc th bCn bBm ph)iv l+a chLn macro no bCn mu=n.

    Hnh 5: Gn macro vo hnh oval

    4.2.2. Ch7y macro tCnt l8nh trn thanh cng c3

    5. G n5i dung Address r[i bBm ra ngoi [email protected]. BCn c th@thay 60i kch th,-c hnh oval cho ph h2p 6@th@hi3n 6Rn5i dung ch8Ftro7. Zn ph)i chu5t vo hnh oval 6, chLn Assign Macro.8. Trong b)ng Assign Macro, chLn macro c tn Address_Ref.9. Sau 6 Bn OK.

    1. ChLn 1 no 6 (v d:nh, J13).2. BBm vo hnh oval trn, macro sMth+c hi3n.

    Page 6 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    7/55

    Ngoi ra, c th@chCy macro tGnt l3nh (button) trong cc cc thanh cng c:t+tCo (customAddress_abs trong nt hnh mDt c,Oi (Smiley Face) nh,sau:

    Trch:

    Hnh 6: TCo thanh cng c:m-i

    1. Di chuy@n chu5t 6An m5t 6i@m no 6 trong cc thanh toolbar.2. Zn ph)i chu5t, trong th+c 6.n tXt chLn Customize.3. Trong b)ng Customize, chLn tab Toolbars (hnh 6).4. ChLn nt New.5. Sau 6 b)ng New Toolbar xuBt hi3n v bCn g tn vo (Macro1) r[i OK.6. Trong b)ng Customize, chLn tab Commands (hnh 7).7. Trong h5p Categories, chLn AutoShapes.8. Trong Commands, cu5n xu=ng cho 6An khi bCn chLn 6,2c hnh ,ng (Smiley Face).9. TCi hnh Smiley Face, gi8tri v ko chu5t vo trong thanh cng c:Macro1 (hnh 8). Bkhc nAu cUn.10. BBm ph)i chu5t vo nt Smiley Face, th+c 6.n tXt sMhi3n ra. BCn c th@s7a hay xo11. ChLn Assign Macro trong th+c 6.n tXt, chLn macro Address_abs v Bn OK.12. Sng b)ng Customize vo.

    Page 7 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    8/55

    Hnh 7: Gn hnh vo nt l3nh m-i

    Hnh 8: TCo cc nt l3nh trong thanh Macro1 v gn Assign Macro vo.

    Ghi ch: Thanh cng c:t+tCo thu5c sFh8u cRa workbook m n 6,2c tCo ra.

    BCn hy th7s7d:ng nt l3nh vGa tCo ra 6@th+c hi3n cng vi3c nh,sau:

    Code:

    Page 8 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    9/55

    KAt qu)sMth@hi3n trn Sheet2.

    4.2.3. Ch7y macro tCl8nh trong menu cEa Excel

    TGmenu cRa Excel bCn c th@thm cc menu m-i m khi l+a chLn chng th macro sMchCy.c th@ch>a menu con Macro2 trn thanh tiu chu]n nh,sau:

    Trch:

    Hnh 9: TCo New Menu trong menu cRa Excel

    1. Xo sCch n5i dung cRa Sheet2.2. BBm chu5t vo nt Smiley Face trong thanh cng c:Macro1.

    1. Ph)i 6)m b)o r\ng workbook 6ang ch>a macro cRa bCn 6ang hoCt 65ng.2. Thm m5t worksheet m-i b\ng cch vo menu Insert/Worksheet (6Dt l Sheet4)3. Trong menu Tools/Customize, chLn tab Commands trong b)ng Customize.4. Cu5n xu=ng dng cu=i cng v chLn New Menu trong Categories (hnh 9).5. Gi8tri chu5t FNew Menu trong Commands v ko vo dng menu cCnh Help.

    6. Zn ph)i chu5t vo New Menu trong menu cRa Excel, th+c 6.n tXt hi3n ra.7. Thay tn m-i trong Name l &Macro2. NAu chJcUn 1 menu ny th bBm vo Assign Macthm cc menu con (menu item) th khng cUn.

    Page 9 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    10/55

    Hnh 10: TCo menu Maro2 trong menu cRa Excel

    K t+v (&) tr,-c M sMgCch chn ch8M trong menu Macro2 (trFthnh Macro2), 6 chnh lBn Alt+M).TiAp theo ta tiAn hnh tCo menu con trong Macro2:

    Trch:

    1. Trong Categories (trong tr,Ong h2p b)ng Customize v^n 6ang mF), chLn Macros.2. TCi Commands, chLn Custom Menu Item (hnh 11), gi8tri v ko chu5t 6An phUn tr=n6Y).

    3. BBm ph)i chu5t vo Custom Menu Item trong menu m_Macro2.4. TCi th+c 6.n tXt, 60i tn trong Name thnh &Work Address (hnh 12).5. Sau 6 vo Assign Macro 6@chLn macro chCy.6. Cu=i cng l 6ng b)ng Customize.

    Page 10 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    11/55

    Hnh 11: TCo cc menu con

    Page 11 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    12/55

    Hnh 12: S0i tn menu con v gn Assign Macro cho n.

    Menu m-i tCo 6,2c l,u gi8trong workbook 6. K@c)bCn 6 6ng workbook nh,ng khi bCn bt+65ng mFra v th+c hi3n l3nh lun.

    4.2.4. Thay &Fi l#a chGn trong macro

    NAu bCn mu=n thay 60i cc l+c chLn chi tiAt trong macro, b,-c 6Uu tin bCn vo menu Tools/macro m bCn mu=n thay 60i v bBm vo nt Option. BCn c th@thay 60i phm tXt v m t)l

    Top

    4.3. S=a macro

    Khi bCn ghi macro 6Uu tin, Excel tCo ra molule trong workbook 6. Module 6 ch>a cc l3nhhi3n 6@nhn thBy module:[code/1. TGmenu Tools/Macro chLn Macros.2. ChLn macro Address_abs v bBm vo nt Edit.[/code]C7a s0Microsoft Visual Basic hi3n ra nh,hnh 13. BCn c th@thBy r 6,2c cc dng code tGn

    4.3.1. D7ng form chung (General form)

    TGkho (keywords) l s=hCng 6Dc bi3t trong VB, 6,2c th@hi3n b\ng mu xanh l cy. TBt c)

    Page 12 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    13/55

    thc bFi End Sub (cn gLi l thRt:c).Dng mu xanh 6 v-i dBu F6Uu dng 6,2c gLi l ch thch (comments). LOi ch thch khnthay 60i n5i dung cRa n. Tn cRa macro v lOi m t)s7d:ng (description) trong qu trnh ghBCn c th@dng comments 6@ch thch trong qu trnh xy d+ng macro. Khi 6 bCn sMd`dth+c hi3n macro.S,Ong 6en li?n c nghaa phn chia cc macro, function (hm) trong module.

    S,Ong gCch d,-i (_) thJnh tho)ng gDp Fcu=i dng code. Khi code qu di th dng (_) 6@xu= lin t:c.Khi bCn ghi macro ph>c tCp h.n, bCn c th@gDp m5t s=code khng ph)i l b)n chBt cRa n (bCn th+c hi3n m5t cch c:th@nhBt, k@c)nh8ng 6=i s=(arguments) ci 6Dt mDc 6Pnh trong E6An macro no th tn cRa macro 6 hi3n FphUn khoanh 6Ynh,hnh 13 (Addres_Ref).

    Hnh 13: C7a s0Microsoft Visual Basic.

    4.3.2. T7o ra nhHng thay &Fi

    Trong c7a s0Visual Basic Editor(VBE) (hnh 13) c cc module. C th@coi module l n.i l,u tr

    Sy cNng l n.i khai bo cc h\ng s=, biAn s=, ki@u d8li3u ng,Oi dng. MIi module c th@chc7a s0chnh hi3n n5i dung code trng gUn gi=ng nh,Word, bCn c th@d`dng tCo nh8ng thn5i dung nAu thBy cUn thiAt.

    Page 13 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    14/55

    V d:, bCn c th@thay 60i tn macro Address_abs thnh Dia_chi chbng hCn, chJcUn g n5i duAddress_abs(). Khi con chu5t n\m trong macro Dia_chi, bCn vo Run v chLn Run Sub/UserFno th bCn vo View/Microsoft Excel (phm tXt Alt+F11). Lc 6 cRa s0VBE v^n hi3n h8u tron

    S@6ng c7a s0VBE v trFv?Excel, bCn vo menu File, sau 6 chLn Close and Return to Micr

    Ghi macro v xem lCi nh8ng g n th+c hi3n l cch hLc rBt hay, gip cc bCn c th@hLc hYi tthu5c tnh cRa n, hi@u r trnh t+cc b,-c th+c hi3n. Nh,ng 6An m5t lc no 6, bCn mu=nthm m5t vi code trong macro hi3n tCi 6@th+c hi3n cc bi ton ph>c tCp h.n. Khi 6 vi3c sn8a.Macro khng th@th+c hi3n 6,2c cc tc v:sau:_Cc ki@u vng lDp._Cc ki@u hnh 65ng theo 6i?u ki3n (s7d:ng If-Then)_Gn gi trPcho biAn._Cc ki@u d8li3u 6Dc bi3t._Hi3n cc thng bo (pop-up messages)_Hi3n cc h5p thoCi (dialog boxes)Trong ch,.ng d,-i 6y, bCn c th@tm 6,2c nhi?u thng tin v?VBA.

    Top

    4.4. NgHphp VB (Visual Basic Grammar)

    4.4.1. Cc &2i t$ng d:ng trong Excel- 6=i t,2ng l-n nhBt- hnh 14) a workbook(chnh l file excel) a worksheet(l cc sheet trong workbook) a range(l vng) a chart(l bi@u 6[)

    Page 14 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    15/55

    Hnh 14: Cc 6=i t,2ng trong Excel

    BCn c th@coi nh8ng 6=i t,2ng trn nh,l danh tG(v d:: ci bnh l danh tG). Trong macrot,2ng. S=i t,2ng ny c th@ch>a cc 6=i t,2ng khc Ftrong n. S=i t,2ng Application FbEc6=i t,2ng trong Excel. Nh8ng thay 60i x)y ra trong 6=i t,2ng Application )nh h,Fng 6An tonApplication c ch>a 6=i t,2ng cNng l-n nh,Workbooks. V d:nh,sau:

    Application.Workbooks 6?cEp (refer) 6An tBt c)workbook 6ang mFtrong Excel.Workbooks.Item(1) 6?cEp 6An workbook 6Uu tin v th,Ong 6,2c gLi tXt l Workbooks(1).Workbooks(Seles.xls) sM6?cEp 6An workbook tn 6.

    Trong workbook th,Ong ch>a cc worksheet, trong mIi worksheet 6 ch>a nhi?u (cell). BCnWorkbooks(Seles.xls).Worksheets(Sheet1 ).Range(B3)Trong lc workbook 6ang lm vi3c th n 6,2c gLi l active workbook (workbook hi3n hnh),l active worksheet. NAu bCn c vi worksheet 6ang hi@n thP, worksheet no 6ang c trY(cursbCn c vi workbook 6ang hi@n thP, workbook no 6ang ch>a active worksheet Ftrong n th

    NAu bCn khng mu=n th+c hi3n ring trn workbook hay worksheet no, VBA sMth+c hi3n tr(mDc 6Pnh). Cn nAu bCn th+c hi3n theo mu=n, th cUn th+c hi3n nh,Ftrn (Range(B3)).Cn Sheets l+a chLn ton b5sheet trong workbook, k@c)chart sheets (bi@u 6[) v worksheeSheet(Year2006) sMtham chiAu 6An sheet c tn l Year2006.Chart(1) sMtham chiAu 6An chart sheet theo th>t+tab.

    4.4.2. Cc ph$:ng thJc (Methods)

    Cc 6=i t,2ng c cc ph,.ng th>c m c th@th+c hi3n cc hnh 65ng trong n.NAu ta xt 6An 6=i t,2ng l Range, v d:d,-i 6y l cc ph,.ng th>c c th@th+c hi3n:

    Code:

    Page 15 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    16/55

    Cc ph,.ng th>c c th@6,2c coi l 65ng tG(v d:: bake l 65ng tG).C php cRa cu l3nh trong VB nh,sau:Object.Method (Cake.Bake)

    Trong macro bCn lEp nh,sau:Range(B3).Select

    4.4.3. Cc thu/c tnh (Properties)

    MIi 6=i t,2ng 6?u c cc 6Dc 6i@m ring. Thng th,Ong thu5c tnh 6i?u khi@n hnh dng xuBtS=i v-i 6=i t,2ng Range, cc thu5c tnh 6Dc tr,ng nh,sau:

    Code:

    Thu5c tnh c th@6,2c coi gUn nh,l tnh tG. N 6,2c thiAt lEp s7d:ng trong cu l3nh nh,sObject.Property = Value hay Noun.Adjective = Value

    V-i macro trn:ActiveCell.FormulaR1C1 = Nguyen Van Hung

    TBt c)cc 6=i t,2ng 6?u 6,2c thiAt lEp cc ph,.ng php (methods) v nh8ng thu5c tnh (ProCu l3nh nh,

    Range(C3).ColumnWidth = 14

    sMthiAt lEp chi?u r5ng cRa c5t ch>a C3 r5ng 14. Excel mDc 6Pnh chi?u r5ng cRa c5t l 8.43

    4 .4 .3 . 1 Cc b in ( V a r i a b le s )

    CNng nh,cc ngn ng8lEp trnh khc, bCn c th@s7d:ng cc biAn trong vi3c tnh ton. Bnh(declare) nh8ng biAn. VBA lun t+65ng l,u gi86=i v-i nh8ng biAn vo lUn 6Uu tin bCn s7d: dCng cRa biAn th@(Variant) v c th@l nh8ng ki@u d8li3u nh,cc chuIi (strings), s=(numbm)ng (arrays) hoDc nh8ng 6=i t,2ng (objects).

    V d:d,-i 6y l khai bo Bn 6Pnh l s=34 6=i v-i biAn X.X = 34

    Trong v d:d,-i 6y, biAn s=Number1 v Number2 6,2c 6,a ra Fgi trPban 6Uu v s7d:ng

    Number1 = 3

    Activate (HoCt 65ng hay hi3n hnh) Clear (Xo) Copy (Sao chp) Cut (CXt bY6i) Delete (Xo n5i dung trong Range) Select (L+a chLn)

    ColumnWidth Font Formula Text Value

    Page 16 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    17/55

    Number2 = 9Mynumber = Number*Number2

    4 . 4 . 3 . 2 . K i "u d#l i&u t r o n g V B A

    MIi >ng d:ng th,Ong x7l nhi?u d8li3u, ta dng khi ni3m biAn 6@l,u tr8d8li3u trong b5n

    cRa ch,.ng trnh. MDc d VBA khng 6i hYi, nh,ng ta nn 6Pnh nghaa r rng tGng biAn tr,-ctrnh 6,2c trong sng, d`hi@u, d`b)o tr v pht tri@n. NAu bCn cUn nh8ng s=li3u c 6Dc tr, chuIi, m)ng,...) 6@s7d:ng trong macro, bCn c th@khai bo biAn 6.CNng nh,quy 6Pnh 6Dt tn cRa macro, cch 6Dt tn cho biAn nh,sau:

    Trch:

    4 . 4 . 3 . 3 . K h a i bo k i "u d#l i&u

    Cch khai bo biAn s=:Dim variable_name As data_typeC cc ki@u d8li3u (data_type) 6,2c trnh by nh,sau:

    Tn biAn c th@di 6An 255 k t+. K t+6Uu tin ph)i l m5t k t+ch8(letter), cc k t+tiAp theo c th@l cc k t+ch8(_). Tn biAn khng 6,2c ch>a cc k t+6Dc bi3t nh,cc k t+: ^, &, ),(,%, $, #, @, !, ~, VBA khng phn bi3t ch8HOA hay ch8th,Ong trong tn biAn. Nn chLn tn biAn ngXn gLn nh,ng th@hi3n r nghaa.

    Khi viAt tn biAn ta nn viAt hoa ch86Uu tin cRa m5t tGc nghaa. Khng 6,2c dng tn biAn trng v-i cc tGkho nh,: Print, Sub, End(tGkha l nh8nnh8ng thnh phUn xc 6Pnh cRa ngn ng8).

    Page 17 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    18/55

    Khai bo biAn s=l thRt:c tc 65ng 6An quy trnh x7l v khng bPthay 60i bFi thRt:c khc.loCi d8li3u quy 6Pnh (trong b)ng trn) th biAn s=6 bPlIi Overflow (trn b5nh-).

    V d:v?s7d:ng Dim trong khai bo biAn s=:

    Trch:

    KAt qu)th@hi3n Fhnh vMd,-i 6y:

    Sub Kieudulieu()Dim Tuoi As Integer Tu0i l s=nguynDim Caodo As Single Cao 65l s=Dim Ten As String Tn ng,Oi l chuIiTuoi = 22 Khai bo tGng gi trPTuoi, Caodo, TenCaodo = 6.75

    Ten = "Nguyen Van Hung"MsgBox "Ho va ten: " & Ten & vbTab & vbTab & "Tuoi la " & TuoiMsgBox "Cao do ho khoan la + " & Caodo & " (m)"End Sub

    Page 18 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    19/55

    Hnh vM15: KAt qu)th@hi3n ki@u d8li3u

    V-i nh8ng gi trPkhng thay 60i th nn thiAt lEp nh,nh8ng h\ng s=(constant). Si?u 6 ng&n

    V d::

    Trch:

    NAu bCn mu=n thRt:c (Sub) khc truy cEp nh8ng biAn s=6, hy khai bo chng Fdng 6Uu(hnh 16). Tr,Ong h2p ny hay s7d:ng khi bCn c m5t biAn s=dng chung cho ch,.ng trnh.

    Ngoi ra, bCn c th@yu cUu ph)i khai bo ton b5biAn s=b\ng cch s7d:ng Option Explicit.VBA sMbo lIi ngay (hnh 16)

    Const Pi = 3.14159Dientich = Pi*2

    Page 19 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    20/55

    Hnh vM16: Khai bo Option Explicit v biAn dng chung Ftrn cng

    Trong v d:tiAp theo, biAn s=6 khai bo Fgi trPban 6Uu (b\ng 0) v sau khi s7d:ng ph,. mn 6i?u ki3n gi trP(value) trong 6 nhYh.n 40. BiAn s=D sMbPthay 60i.

    Trch:

    4.4.4. S=d3ng m-ng (Array)

    M)ng l ki@u d8li3u 6Dc bi3t v hay 6,2c >ng d:ng trong vi3c th=ng k, tnh ton,... nn 6,2 ch>a cc biAn s=6,2c sXp xAp theo trnh t+quy 6Pnh. MIi biAn s=6,2c gLi l phUn t7cRa m) phUn t7trong m)ng l lin t:c. V d:nh,danh sch hLc sinh trong m5t l-p, gi trPchJtiu 6. hai loCi biAn m)ng: m)ng c chi?u di c=6Pnh v m)ng 65ng.

    4 . 4 . 4 . 1 . M)n g c c h i ,u d i c-/0n h

    ThRt:c Dim c th@s7d:ng 6@khai bo trong m)ng c chi?u di c=6Pnh m khng cUn 6,a giV d::

    Code:

    M)ng Arr(4) tCo ra m)ng 1 chi?u ch>a 5 phUn t7. V-i ki@u khai bo ny (4), phUn t76Uu tinbXt 6Uu tG1 th bCn ph)i khai bo Option Base 1 trn 6Uu cRa thRt:c (Sub).M)ng Myfriends tCo ra m)ng 1 chi?u ch>a 6,2c 30 chuIi (l tn ng,Oi).

    M)ng Noisuy tCo ra m)ng 2 chi?u v-i kch th,-c cCnh 20 x 30 (t,.ng >ng 600 gi trPl s=).Hm s=c tn l Array c th@tCo nn m)ng tGcc biAn s=trong n.

    Trch:

    Khi s7d:ng hm Array, nh8ng biAn s=mDc 6Pnh l ki@u biAn Variant.S@xc 6Pnh thng s=cRa hm Array, ph0biAn dng 2 hm sau: Hm UBound tr)v?phUn t7cu=i cng cRa m)ng. Hm LBound tr)v?phUn t76Uu tin cRa m)ng.

    V d:: Hnh 17 l kAt qu)cRa Sub d,-i 6y

    Sub VD_Bienso()Dim Marks As RangeDim C, D As IntegerSet Marks = Range(B1:B10)D = 0For Each C in MarksIf C.value < 40 thenD = D + 1End IfNext CMsgBox Gia tri moi cua bien so D la & DEnd Sub

    Dim Arr(4)Dim Myfriends(1 to 30) As StringDim Noisuy(1 to 20, 1 to 30) As Single

    Dim Array(Michael, David, Peter, Jackson)

    Page 20 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    21/55

    Trch:

    Hnh 17: Cc phUn t7trong m)ng

    Hm Msgbox sMcho hi3n h5p thng bo nh,bn cCnh, cc bCn sMhLc Fm:c 11.1.Ngoi ra cc bCn cn thBy hm Chr(13), vbNewLine, vbCrLf c cng tc d:ng l ngXt dng trodng trong Word).

    4 . 4 . 4 . 2 . S 2d3n g W i t h - En d W i t h

    With - End With dng 6@th+c hi3n nhi?u thao tc 6=i v-i 6=i t,2ng 6.n lc. Ph,.ng php nythu5c tnh. S@hi@u 6,2c cch s7d:ng With - End With trong cng vi3c, v d:d,-i 6y th@hi3sMlm thay 60i 5 thu5c tnh cRa vng 6Pnh dCng.

    Code:

    Trong thRt:c trn, bCn thBy 6oCn Selection.Font. 6,2c lDp lCi nhi?u lUn v bCn c th@viAt lCithRt:c 6 s7a lCi:

    Code:

    Option Base 1Sub assignArray()Dim Arr(4) As StringArr(1) = "Thang 1"Arr(2) = "Thang 2"Arr(3) = "Thang 3"Arr(4) = "Thang 4"MsgBox Arr(1) & Chr(13) & Arr(2) & vbNewLine & Arr(3) & vbCrLf & Arr(4)End Sub

    Sub ChangeFont1()Selection.Font.Name = VerdanaSelection.Font.FontStyle = Bold ItalicSelection.Font.Size = 12Selection.Font.Underline = xlUnderlineStyleSingle

    Selection.Font.ColorIndex = 5End Sub

    Page 21 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    22/55

    BCn sMthBy khi s7d:ng With- End With, vi3c qu)n l cc 6=i t,2ng v thu5c tnh cRa chng d

    Top

    4.5. S=d3ng gip &KHelp

    Trong qu trnh viAt macro, chXc chXn bCn ph)i cUn 6An tr2gip. Khng c sch no c th@ving8lEp trnh ni chung, v nh8ng kiAn th>c trong 6 rBt r5ng l-n. V vEy bCn nn s7d:ng tnhs7d:ng Help l bCn ph)i biAt tiAng Anh 6@6Lc v hi@u 6,2c cc h,-ng d^n 6. Nh8ng ng,OichRyAu s7d:ng sch tiAng Anh v 6Lc trong Help. N5i dung trnh by d,-i 6y sMcho cc bCthAno.

    4.5.1. T7i th9i &iAm &ang vi>t code

    Trong qu trnh viAt macro tCi c7a s0Microsoft Visual Basic, bCn c th@truy cEp vo help tCi nnh,sau:

    - ChLn m:c c:th@(di chuy@n chu5t vo ch8Select).- Sau 6 Bn phm F1. Khi 6 hi3n c7a s0Microsoft Visual Basic Help nh,hnh 19.

    4.5.2. S=d3ng h/p tho7i gip &KvLi chE&5c3thA

    S@s7d:ng h5p thoCi gip 6c n&ng Search (v d:g n5i dung commandbarbCn 6ang cUn tm trong danh m:c.

    Sub ChangeFont2()With Selection.Font

    .Name = Verdana

    .FontStyle = Bold Italic

    .Size = 12

    .Underline = xlUnderlineStyleSingle

    .ColorIndex = 5End With

    End Sub

    Page 22 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    23/55

    Hnh 19: C7a s0Microsoft Visual Basic Help

    Page 23 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    24/55

    Hnh 20: S7d:ng Visual Basic Help

    4.5.3. Trnh duy8t &2i t$c trnh duy3t 6=i t,2ng (Object Browser) 6,2c s7d:ng 6@xem cc 6=i t,2ng, ccb0sung thm cc hm s=(functions) v cc l3nh (statements) 6,2c xy d+ng trong Visual Ba

    Code:1. Vo c7a s0Microsoft Visual Basic 6ang mF.2. TGmenu View, bCn chLn Object Browser (hoDc Bn phm F2).

    Page 24 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    25/55

    Hnh 21: ChLn chR6?c:th@b\ng search hoDc trong Table of contents

    Sau 6 c7a s0hi3n ra Fgi8a ch>a danh m:c cc nhm - l-p (classes) khc nhau cRa 6=i t,2nNhm (class) chnh l phUn m t)cc dCng cRa 6=i t,2ng (v d:nh,particular chart thu5c v?hay th,vi3n (library).

    Code:

    3. BBm vo hnh tam gic 6i xu=ng bn cCnh v chLn Excel (hnh 19). Khi4. Trong vng Classes, ban cu5n xu=ng v chLn Range.5. Trong Members of Range bCn bBm vo ClearContents.6. ChJd^n Fbn cCnh ClearContents m c k hi3u mu xanh cho biAt 6=i t,2ng 6 l ph7. NAu mu=n biAt thm thng tin v?ClearContents, bCn bBm vo nt Help (hnh dBu ? m8. S@xem v d:, bCn Bn vo Example mu xanh (hnh 20).9. Sng c7a s0h,-ng d^n s7d:ng ClearContents v tiAp t:c cu5n 6@tm cc thnh phUn10. ChJd^n m c bi@u t,2ng khc Fbn cCnh (hnh bn tay chJ) cho biAt hm 6 l thu5 11. Sng c7a s0Visual Basic Object Browser vo.

    Page 25 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    26/55

    Hnh 22: C7a s0Object Browser

    Hnh 23: Cc nhm thu5c 6=i t,2ng Excel

    Page 26 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    27/55

    Hnh 24: C7a s0Help 6=i v-i cc 6=i t,2ng trong Excel.

    4.5.4. Cc file v d3

    Excel 6,a ra m5t s=file v d:c tn l Samples.xls. HUu hAt 6=i v-i mIi phin b)n Excel khcNng khc nhau. Trong Excel 2003, bCn c th@tm thBy file ny tCi 6,Ong d^n sau:

    C: \ P r o g r a m Fi le s \ M i c r o so f t O f f i ce \ O f f i ce 1 0 \ Sa m p l e s .x l s ? ??

    Samples.xls 6?cEp nhi?u >ng d:ng cRa Excel. MIi sheet h,-ng d^n m5t phUn cng vi3c. NLabeling, Repeating Tasks, Arrays, API examples, Events, Automation, ADO,... Hnh )nh v?

    Page 27 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    28/55

    Hnh 25: N5i dung File v d:Samples. xls

    Top

    4.6. M/t s2chJc n*ng &i5u khiAn trong VBA

    CNng nh,VB, VBA c nh8ng tnh n&ng 6i?u khi@n trong qu trnh viAt code rBt thuEn l2i. BCnhoDc giao di3n cRa c7a s0soCn code Microsoft Visual Basic (MSB).

    Page 28 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    29/55

    Hnh 26: S7d:ng Options trong menu Tools cRa MVS

    Hnh 27: C7a s0Editor v Editor Format trong Options

    4.6.1. S=d3ng Options

    BCn vo menu Tools, chLn Option (hnh 26), c7a s0Options hi3n ra nh,hnh 27. Trong Editor

    Auto Syntax Check:Trong tr,Ong h2p khng chLn, m khi bCn th+c hi3n sai th dng 6 cnh,hnh 37. Require Variable Declaration:Khi 6,2c chLn, dng Option Explicit lun xuBt hi3n F6Uu

    Page 29 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    30/55

    Hnh 28: C7a s0Auto List Members

    Auto List Members:Khi 6,2c chLn, VBA sMt+65ng cho hi3n danh sch cc thu5c tnh vl-p, khi ta g vo tn cRa 6i?u khi@n 6 (hnh 28). Auto Quick Info:T,.ng t+nh,trn, nh,ng n hi@n thPc php cRa 1 hm hay thRt:c, th

    Hnh 29: C7a s0Auto Quick Info

    Auto Data Tip:Hi@n thPdanh sch cc d8li3u khi khai bo biAn.

    Hnh 30: C7a s0Auto Data Tip

    Trong c7a s0Editor Format c cc l+a chLn chnh sau: Code Color:BCn c th@l+a chLn mu ch8, mu n?n cRa tGng loCi code, mDc 6Pnh l Auto. Font:ChLn loCi font ch8tud thch, mDc 6Pnh l font Courier New.

    Page 30 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    31/55

    Size:ChLn kch cc v thu5c tnh. BCn khng th@no biAt 6,2 bCn nh8ng tnh n&ng g2i nh-trn gip cc bCn c th@khai thc t=t h.n VBA.

    4.6.2. S=d3ng VBAProject

    Trong menu Tools, chLn VBAProject Properties, c7a s0VBAProject hi3n ra nh,hnh 31.

    VBProject:S@nhEn dCng d+n cRa bCn trong Window Registry (khai bo trong Window) vl n c tn duy nhBt. Project Description:M t)tn cRa d+n cRa bCn trong Type Library. Th,vi3n Type Librav giao di3n cRa d+n cRa bCn.

    Hnh 31: S7d:ng VBAProject Properties

    Page 31 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    32/55

    Hnh 32: D+n Su_dung_VBA trong v b)o v3code trong Protection

    C nh8ng d+n (project) cRa bCn lEp ra m khng mu=n ng,Oi khc xem code, bCn c th@khtab Protection bCn l+a chLn nh,sau:

    Lock project:Kho code trong module, khng cho nhn thBy v khng cho s7a ch8a. BCn p Password to view project properties:BCn ph)i g n5i dung m kho trong h5p Passwor*. Sau 6, bCn ph)i xc nhEn n5i dung m kho trong Confirm password b\ng cch g lCi n5ikhng 6ng n5i dung, VBA sMbo lIi v bCn ph)i g lCi cho 6ng. S=k t+t=i 6a l 24 k t+,

    Sau 6, mIi khi mFfile trn, 6@c th@xem 6,2c code, bCn vo menu Tools/Macro, chLn Visu

    s0Microsoft Visual Basic hi3n ra, tuy nhin ton b5n5i dung code 6?u khng hi3n ra (hnh vMnhy kp vo Su_dung_VBA Project, c7a s0Su_dung_VBA Password hi3n ra. BCn ph)i khai bhi3n ra.

    Page 32 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    33/55

    Hnh 33: H5p thoCi hYi m kho khi bCn mFProject bPkho.

    Ghi ch: L,u khi s7d:ng m kho, nAu bCn qun th sMkhng th@mF6,2c project. V vEy,chLn n5i dung no d`nh-. NAu mu=n 60i m kho th bCn vo c7a s0Password 6@thay 60i.

    4.6.3. S=d3ng chJc n*ng Security

    MBy n&m gUn 6y, do virus macro pht tri@n nn Microsoft 6 b0sung thm chA65an ton tr6i?u khi@n s+lm vi3c cRa macro, t>c l c th@cho hoCt 65ng hoDc khng.1. BCn vo menu Tools/Macro v chLn Security (hnh 34), c7a s0Security hi3n ra.2. Trong Security, tCi tab Security Level c 4 tr,Ong h2p chLn nh,sau:- Very High: SDt chA65an ton rBt cao, cc macro khng th@chCy 6,2c, chJtrGmacro cRa O

    - High: ChJnh8ng macro 6,2c xc nhEn m-i c th@chCy, cc macro khc cNng bPv hi3u ha.6&ng k trong menu Tools\Option\Securitry\More Macro\Trusted Publisher.

    - Medium: SDt chA65an ton trung bnh. Khi chLn tr,Ong h2p ny, nAu bCn mFfile c ch>ac th@l+a chLn Enable Macros 6@cho macro hoCt 65ng hoDc Disable Macros 6@macro khngkhng s7d:ng macro (thRt:c hay hm t+tCo) m khi mFExcel c)nh bo nh,hnh 31 th file

    - Low: Khng 6Dt chA65an ton, t>c l Excel khng c)nh bo bBt c>vBn 6?g c).3. Nh,vEy, khi bCn s7d:ng VBA th nn 6Dt Security Level Fm>c 65Medium hoDc Low. Khi6,2c.

    Page 33 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    34/55

    Hnh 34: Vo menu Security v c7a s0Security

    Hnh 35: C)nh bo macro ch>a trong file

    Top

    4.7. Vi>t macro

    Khi bCn tiAn hnh ghi (record) macro, Excel sMt+65ng tCo module v b0sung n vo trong w6 ghi thu5c v?module 6.Khi bCn mu=n viAt m (code) trong workbook, bCn c th@b0sung module trong workbook 6.gLi l Visual Basic Integrated Development Evironment (IDE). Macro c trong module 6,2c hitrong workbook (nh,Excel 6Oi tr,-c 97).

    4.7.1. Vi>t macro

    Page 34 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    35/55

    Tr,-c tin chuy@n sang workbook m-i (nh,ng cho php workbook cN6 v^n mF) nh,sau:

    1. TiAp theo bBm chu5t vo nt New trong thanh cng c:(toolbar), hoDc vo menu File r[i ch2. BBm chu5t ph)i tCi tn cRa Sheet1 v chLn Rename trong menu tXt.3. G n5i dung Text r[i Bn Enter.

    ViAt macro:1. TGmenu Tools/Macros bCn chLn Visual Basic Editor.2. Trong c7a s0Microsoft Visual Basic bCn vo menu Insert v chLn Module (hnh 36).3. NAu cUn, bCn c th@thay 60i tn cRa module theo mu=n. Trong c7a s0Properties, bn cC thnh Chuongtrinh.4. BBm vo vng tr=ng cRa c7a s0Chuongtrinh (phUn code).5. G Sub MyFirst r[i bBm Enter. Khi 6 Excel sMt+65ng 6i?n () v End Sub, th@hi3n nh,hn6. G cc l3nh tGng b,-c m5t theo s+m t)Fd,-i. BCn c th@c 6,2c nh8ng gip 6a cc l3nh 6.n gi)n.

    - B,-c 1: ChLn sheet c tn Text (dng Sheets(Text).Select)- B,-c 2: G 6oCn I can write macros!trong B2 trong sheet 6.- B,-c 3: Bi 6Em ch8.

    Cu=i cng, bCn ki@m tra (test) lCi macro Text:

    1. Quay trFv?sheet Text.2. TGmenu Tools/Macros chLn Macros.3. Trong c7a s0Macros, bCn chLn macro c tn l MyFirst v chLn Run.

    MLi vi3c sMt=t 6_p, 6oCn ch86Em I can write macros!sM6,2c nhEp vo B2.

    Khi code bPlIi th sMc b)ng thng bo lIi, v d:nh,hnh 37.

    Hnh 36: TCo Module v Sub trong workbook

    Page 35 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    36/55

    Hnh 37: LIi gDp ph)i trong vi3c xy d+ng macro

    Hnh 38: S7a lIi gDp ph)i khi viAt code

    Khi gDp lIi, bCn tiAn hnh theo cc b,-c sau 6y:

    1. BBm vo nt Debug v tm kiAm lIi 6@s7a lCi. LIi cRa cu l3nh 6Uu tin sM6,2c bi n?n m2. S7a nh8ng cu l3nh sai trong phUn 6,2c bi vng 6.3. MNi tn vng Fl?sMcho biAt r\ng macro 6ang FchA65dGng (break mode).4. Ngoi ra bCn c th@bBm vo Run, sau 6 chLn Reset 6@xc lEp lCi (hnh 38) hoDc chLn DenAu mu=n macro chCy tiAp th chLn Continue (hoDc Bn phm F5).

    5. Quay trFv?sheet Text v xem macro lm vi3c c chnh xc khng.

    4.7.2. S=a chHa lMi

    Page 36 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    37/55

    Khi bCn g m5t dng code trong macro v g Enter, Excel sMki@m tra dng 6. NAu n tm 6,range, th sMtrFthnh Range (ch8r t+65ng chuy@n thnh ch8hoa R F6Uu).

    NAu code 6 thiAu hoDc tm ra lIi, Excel sMbiAn n5i dung 6 thnh mu 6Yv hi3n ra b)ng thkhc nhau, tudvo lIi c:th@m c tGng ki@u n5i dung b)ng thng bo.

    Hnh 39: Bo lIi code

    NAu bCn mu=n biAt thm thng tin v?lIi 6 th bBm vo nt Help. S@s7a ch8a lIi 6, bCn bB cho 6ng.C nh8ng tr,Ong h2p gDp ph)i nh8ng lIi m khng 6,2c thng bo cho 6An khi Visual Basic bibCn gDp 6 l lIi compile-time. Visual Basic sMcho biAt vPtr cRa lIi 6 v sMg7i cho bCn thn

    Cn cc lIi khc chJxuBt hi3n khi macro chCy thEt s+. S 6,2c gLi l lIi run-time. S@s7a ch8 6oCn code 6.

    M5t s=lIi gDp ph)i khng hbn l lIi, n chJxuBt hi3n khi macro chCy. V d:nh,chia m5t s=

    mu=n. D+a vo hon c)nh 6 m bCn c th@s7d:ng cu l3nh On Error 6@b^y lIi (xem Fm

    Top

    4.8. Tham chi>u &>n v vng

    BCn c th@s7d:ng macro 6@tham chiAu 6An cc hoDc vng trong worksheet. NAu bCn mu= s7d:ng 6An 6=i t,2ng Range. S=i t,2ng Range 6,2c s7d:ng vo loCi nhi?u nhBt trong Excelvng (range). C vi cch cho gi trP6=i t,2ng Range 6 6,2c m t)pha d,-i 6y.

    4.8.1. Tham chi>u kiAu A1

    Page 37 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    38/55

    D,-i 6y l b)ng v d:cc dCng tham chiAu 6An , vng cRa theo ki@u A1 khi s7d:ng ph,. THAM CHIeU SeN)

    V d:1:

    Trch:

    th vng A1:A3 sM6,2c chLn (bi 6en)

    V d:2:

    V-i workbook c tn Popupmenu, trong worksheet Sheet1, bCn gn n5i dung Bo mon DCCT vnghing, mu 6Yv n?n mu vng.

    Code:

    H,-ng d^n chLn vng tXt:

    BCn c th@dng ngoDc vung [ ] 6@chLn vng thay v (). So snh v-i v d:nh,sau:

    Trch:

    Range(A1:A3).Select

    Sub Thunghiem()Workbook(Popupmenu).Sheets(Sheet1).Range("B3").SelectActiveCell.FormulaR1C1 = "Bo mon DCCT"

    Selection.Font.Bold = TrueSelection.Font.Italic = TrueSelection.Font.ColorIndex = 3

    With Selection.Interior.ColorIndex = 6.Pattern = xlSolid

    End WithRange("B4").Select

    End Sub

    [A1:A3].Select l cch chLn vng gi=ng nh,Range(A1:A3).Select

    Page 38 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    39/55

    4.8.2. S2ch?m3c (Index numbers)

    Thu5c tnh Cells c th@s7d:ng 6@tr)v?6=i t,2ng m)ng l 6.n. S=chJm:c hng v c5t cR m khng c s=hng v c5t th Cells() sMtr)v?6=i t,2ng l ton b5 trong sheet (gi=ng nh

    V d:1:

    Cells(4,1) tr)v? A4Cells() tr)v?ton b5 trong sheet

    V d:2:

    Trch:

    tr)v?s=2000 trong B3 tCi Sheet2, trong workbook hi3n hnh.

    Ghi ch: Thu5c tnh Cells 6,2c >ng d:ng nhi?u khi viAt cc vng lDp gi8a cc .

    4.8.3. S2hng v s2c/t (Rows and Columns)

    Sy l m5t cDp thu5c tnh 6,2c gLi l Rows v Columns, chng gip bCn c th@lm vi3c v-i t

    Code:

    V d::

    Trch:

    cho kAt qu)l ton b5hng 2 trong sheet Week4 ch86Em cRa workbook hi3n hnh.

    Ghi ch: BCn c th@th+c hi3n 6=i v-i nhi?u hng v c5t khi s7d:ng ph,.ng th>c Union.

    V d:v?s+h2p nhBt gi8a hai vng Range1 v Range2 khi s7d:ng ph,.ng th>c Union 6,2c 6i

    Trch:

    4.8.4. NPt tn cho vng (Named ranges)

    Worksheets(Sheet2).Cells(3,2).Value = 2000

    Tham chiAu S?cEp 6An__________________________________________________Rows(4) Hng s=4Rows Ton b5dng trong sheet hi3n hnhColumns(4) C5t D (c5t th>4)Columns(D) C5t DColumns Ton b5c5t trong sheet hi3n hnh

    Worksheets(Week4).Rows(2).Font.Bold = True

    Worksheets("Sheet1").ActivateSet Vung = Application.Union(Range("Range1"), Range("Range2"))Vung.Formula = "=RAND()"

    Page 39 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    40/55

    V-i m5t s=tr,Ong h2p bCn phn chia vng cc ra v-i tn xc 6Pnh 6@d`truy cEp v nghins7d:ng ch>c n&ng 6Dt tn cho vng trong Excel (xem trong menu Insert/Name/Define...).sMtruy cEp 6An vng m bCn l+a chLn. BCn ph)i 6Dt tn nh8ng vng 6 tr,-c khi viAt macrovng.

    4 . 8 . 4 . 1 . Tn /$5c t7o r a n g oi m a c r o S@6Dt tn cho vng, 6Uu tin bCn chLn chLn nh8ng 6 b\ng cch bi 6en, sau 6 bCn bBmtri, cng hng v-i thanh cng th>c). Sau 6 6Dt tn cRa vng 6 r[i Enter.Gi)thiAt r\ng bCn 6Dt tn Congty cho cc C2:C8 trong sheet Danhsach cRa workbook Quanl

    V d:1:sMlm cc trong vng C2:C8 6Em ln.

    Trch:

    V d:2:NAu workbook Quanly v worksheet Danhsach 6ang hi3n hnh, th

    Trch:

    sMlm cc trong vng C2:C8 mBt 6Em (ch8bnh th,Ong).

    Hnh 40: TCo tn cRa vng

    4 . 8 . 4 . 2 . Tn /$5c t7o r a t r o n g m a cr o Tn vng c th@6,2c Bn 6Pnh khi s7d:ng macro 6@lEp, v d:d,-i 6y:

    Range([Quanly.xls]Danhsach!Congty).Font.Bold = True

    Range(Congty).Font.Bold = False

    Page 40 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    41/55

    Trch:

    KAt qu)l cc trong vng D1:D10 sMbPnghing.

    4.8.5. Nhi5u vng (Multiple ranges)

    Tr,Ong h2p ny hay 6,2c s7d:ng 6@tham chiAu 6An nhi?u vng trong macro, c th@xo sCc

    Trch:

    sMxo sCch n5i dung nh8ng 6 chJ6Pnh trong worksheet Bang.Cn 6=i v-i nh8ng tn vng bCn 6Dt (nh,Ftrn), c th@th+c hi3n nh,sau:

    Trch:

    Ghi ch: Trong macro, cc vng c th@6,2c xc 6Pnh, 6Dt tn v 6,2c ph=i h2p khi s7d:ng p4.8.6. Offset cells

    Thu5c tnh Offset th,Ong 6,2c s7d:ng 6@tham chiAu 6An khc m c quan h3v-i 6ang hCng th>c dCng t0ng qut:

    Trch:

    Trch:

    l s=nguyn v 6,2c hi@u l xu=ng d,-i bao nhiu dng.

    Trch:

    l s=nguyn v 6,2c hi@u chuy@n sang ph)i bao nhiu c5t.

    V d:1:

    Nh,Fhnh 41, gi)thiAt B1 l hi3n hnh. By giObCn dng Offset 6@ch8trong C2 c mdung X nghi3p kh)o st 6Pa kfthuEt.

    Trch:

    Workbooks(Congty.xls).Names.Add Name:=Congty, _RefersTo:==Danhsach!D1:D10Range(Congty).Font.Italic = True

    Worksheets(Bang).Range(A1:C3,H4:L8,P14:Z3 4).ClearContents

    Range(Danhsach1, Danhsach2, Danhsach3).ClearContents

    Offset(no_rows_down, no_cols_to_right)

    no_rows_down

    no_cols_to_right

    Sub Offset()

    Page 41 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    42/55

    KAt qu)th@hi3n Fhnh 41.

    Hnh 41: S7d:ng Offset 6@tham chiAu 6An cc

    Ghi ch: Khi gi trPno_rows_down hoDc no_cols_to_right c gi trPm th sMc h,-ng ng,2c l4.8.7. KiAu tham chi>u R1C1

    Khi s7d:ng ki@u R1C1, Excel sMtham chiAu 6An m 6,2c xc 6Pnh bFi s=hng v c5t. V d:

    Khi s7d:ng ki@u tham chiAu ny, m=i quan h3gi8a cc trong tnh ton sM6,2c th@hi3n tro

    R[m]C[n] sMtham chiAu 6An (truy cEp 6An) c m dng pha d,-i v n c5t pha bn ph)i so vth@l s=m, khi 6 h,-ng sMng,2c lCi, ln trn v sang bn tri.

    V d:1:NhEp vo cng th>c Sum(B2:B4) trong B5. B5 c 6Pa chJhng 5 v c5t B v c gi trPl t0ng cc cRa 3 hng tr,-c 6, g[m dng th>TG6 xy d+ng macro nh,sau:

    Trch:

    Range("B1").ActivateActiveCell.Offset(1, 1).Font.ColorIndex = 3ActiveCell.Offset(4, 1).Font.Bold = TrueActiveCell.Offset(8, 1).Value = "X nghi3p kh)o st 6Pa kfthuEt"ActiveCell.Offset(8, 1).Font.Size = 12Range("E9").Activate

    ActiveCell.Offset(-1, -2).Font.Italic = TrueEnd Sub

    Range(B5).SelectActiveCell.FormulaR1C1 = =Sum(R[-3]C:R[-1]C)

    Page 42 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    43/55

    V d:2:NhEp vo cng th>c = F2-F4 trong D5.

    N5i dung R1C1 trong FormulaR1C1 c th@khng cUn dng 6An v nAu bCn mu=n, 2 dng trn

    Trch:

    Trch:

    Thay 60i cng th>c thnh gi trPkAt qu).

    G6 c cng th>c l =G5*G4. V d: G5 c gi trPl 2, G4 c gi trPl 3, nh,vEy gi trPndung hm thnh gi trPl 6.

    Trch:

    Dng l3nh cu=i cng l l3nh huVbYchA65trCng thi Cut/Copy (6,Ong gCch nhBp nhy bao q

    Top

    4.9. CQu trc &i5u khiAn

    M5t s=tr,Ong h2p, bCn ph)i s7d:ng macro 6@ki@m tra nh8ng 6i?u ki3n 6Dc bi3t trong works6,2c yu cUu 6?ra. V-i mIi 6i?u ki3n khc nhau th macro sMth+c hi3n cng vi3c khc nhau.V-i cBu trc 6i?u khi@n nh,vEy khng th@t+65ng ghi 6,2c, bCn ph)i viAt chng trong Visual

    4.9.1. Cu l8nh IF

    Sy l ki@u 6.n gi)n nhBt, m^u cRa cu l3nh IF nh,sau:

    Trch:

    Trong chJd^n trn, cc thng s=trong [ ] l tudchLn, c th@bYqua nAu thBy khng cUn thiAt

    NAu 6,2c toCi nguy3n (6ng - True) th 6,2c th+c hi3n, cn nAu 6,2c th+c hi3n.Thng th,Ong, bCn hay s7d:ng cu l3nh If ... then ... Else m khng cUn ph)i gi-i hCn s=d

    Trch:

    Range(B5).Formula = =R[-3]C[2]-R[-1]C[2]

    V d:3:

    Range(G6).SelectActiveCell.FormulaR1C1 = =R[-1]C:R[-2]CSelection.CopySelection.PasteSpecial Paste:=xlValuesApplication.CutCopyMode = False

    If Then [Else ]

    If Then[ElseIf

    Page 43 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    44/55

    Trong m^u t0ng qut Ftrn, tGkho ElseIf v Else l tudchLn (nh,bi@u thPtrong dBu ngoDcth>nhBt, nAu sai th sMchuy@n sang 6i?u ki3n th>2,... cho 6An khi 6i?u ki3n 6ng. VB thi hhnh dng ch,.ng trnh ngay sau End If.

    V d::Macro d,-i 6y tm kiAm gi trPtCi A1 (l 6i@m trung bnh mn hLc).

    Trch:

    B2 th@hi3n kAt qu)hLc l+c.

    Trch:

    Ghi ch: BCn c th@bYqua dng Range(A1).Select v thay b\ng If Range(A1).Value >= 8

    Ngoi ra, bCn cNng c th@s7d:ng If 6@kAt thc macro, cu l3nh nh,sau c th@s7d:ng 6@

    Trch:

    (nAu hi3n hnh m tr=ng th sMkAt thc Sub, khng cUn ph)i c End If)

    V d::

    Gi)s7bCn tm kiAm gi trPcRa m5t v bCn mu=n kAt qu)nh,sau

    DGng macro khi 6 tr=ng. NhEp gi trPT=t vo ngay bn ph)i 6 nAu c gi trPl-n h.n 40.

    ][ElseIf ][Else]End If

    NAu 10 > A1 8.0 : HLc l+c giYi;NAu 8 > A1 6.5 : HLc l+c kh;

    NAu 6.5 > A1 5.0 : HLc l+c trung bnh;NAu 5 > A1 0 : HLc l+c km.

    Sub Hocluc()Sheets(Sheet1).SelectRange(A1).SelectIf ActiveCell >= 8 Then

    Range(B2).Value = HLc l+c giYiElseIf ActiveCell >= 6.5 ThenRange(B2).Value = HLc l+c khElseIf ActiveCell >= 5 ThenRange(B2).Value = HLc l+c trung bnhElseRange(B2).Value = HLc l+c kmEnd IfEnd Sub

    If ActiveCell = Then End Sub

    Page 44 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    45/55

    NhEp gi trPKm vo ngay bn ph)i 6 nAu c gi trPnhYh.n 40.

    Trch:

    4.9.2. S=d3ng Select Case

    Select Case l m5t dCng cRa If ... Then ... Else, 6,2c s7d:ng khi c nhi?u 6i?u ki3n chLn lLc

    Trch:

    MIi danh sch bi@u th>c c 1 hay nhi?u gi trP. Cc gi trPcch nhau b\ng dBu ph]y (,). Cn gtGkho To. MIi kh=i l3nh c th@ch>a 0 hay nhi?u dng l3nh. NAu bi@u th>c no tho)mn 6i?hi3n. Case Else khng nhBt thiAt ph)i c, dng trong tr,Ong h2p cn lCi cRa cc Case tr,-c.

    V d::

    B2 ch>a gi trP65s3t cRa 6Bt, C2 sMth@hi3n trCng thi cRa n.

    Trch:

    Sub user_If()If ActiveCell.Value = "" Then Exit SubIf ActiveCell.Value >= 40 ThenActiveCell.Offset(0, 1).Value = "T=t"ElseActiveCell.Offset(0, 1).Value = "XBu"End IfEnd Sub

    Select Case c ki@m tra>[Case c 1>][Case c 2>][Case c 3>]....[Case Else c n>]End Select

    Sub Trangthai()Sheets(Sheet1).SelectDoset = Cells(2,2).ValueSelect Case DosetCase 1, 1 to 10Cells(2,3).Value= Ch)yCase 0.75 to 1Cells(2,3).Value= Dco ch)yCase 0.5 to 0.75Cells(2,3).Value= Dco m?mCase 0.25 to 0.5Cells(2,3).Value= Dco c>ng

    Case 0 to 0.25Cells(2,3).Value= N7a c>ngCase < 0

    Page 45 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    46/55

    4.9.3. Xy d#ng cc &i5u ki8n

    Trong nhi?u tr,Ong h2p, 6i?u ki3n lLc d8li3u 6 trFnn kh ph>c tCp. NAu chJs7d:ng If hayk?nh, rXc r=i. Trong hon c)nh 6, And v Or gip bCn th+c hi3n cng vi3c 6, gip ch,.ng tr4 . 9 . 3 . 1 . S 2d3n g A n d

    Cu l3nh nh,sau:

    Trch:

    chJth+c hi3n khi c)hai 6i?u ki3n 1 v 2 6?u 6ng. ChJ1 trong 2 6i?u ki3n sai t4 . 9 . 3 . 2 . S 2d3n g O r

    Cu l3nh nh,sau:

    Trch:

    th+c hi3n khi m5t trong hai 6i?u ki3n 1 v 2 6ng. C)2 6i?u ki3n sai th

  • 7/24/2019 Cng Thc & Hm Excel

    47/55

    Trch:

    Top

    4.10. H/p tho7i trong VBA

    H5p thoCi (Dialog) l m5t trong nh8ng cch th>c 6@Windows giao tiAp v-i ng,Oi s7d:ng. D,tCo ra 6@6i?u khi@n trong su=t qu trnh chCy macro (MsgBox v InputBox).

    4.10.1. H/p thng bo (Message box)

    Cu l3nh MsgBox sMcho hi3n ln trn mn hnh m5t h5p thng bo, gi trPnhEn 6,2c l biAnS7d:ng MsgBox gip bCn rBt hi3u qu)trong vi3c g 1.5 And Chisodeo >= 17 And Doset > 1 ThenMsgBox "Day la dat BUN SET!"ElseIf Hsr > 1.0 And Chisodeo >= 7 And Doset > 1 ThenMsgBox "Day la dat BUN SET PHA!"ElseIf Hsr > 0.9 And Chisodeo >= 1 And Doset > 1 ThenMsgBox "Day la dat BUN CAT PHA!"ElseMsgBox "Chua ro ten dat!!!!"End IfEnd Sub

    MsgBox (prompt [, buttons] [, title] [, helpfile, context])

    prompt l n5i dung lOi nhXc cRa h5p thng bo.

    buttons l tudchLn loCi nt 6i?u khi@n (nh,Yes, No, OK)title l tudchLn n5i dung ch8trn 6Uu h5p thng bohelpfile l tudchLn v 6i?u khi@n file tr2gip no 6@s7d:ng.context l tudchLn v l s=th>t+tnh hu=ng trong helpfile. NAu helpfile c th m:c conte

    Page 47 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    48/55

    4 . 1 0 . 1 . 2 . M t )t h n g s -cc n t

    4 . 1 0 . 1 . 3 . Cc b i "u t$5n g t h n g /i&p

    Page 48 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    49/55

    Ghi ch: TCi mIi ki@u thng 6i3p, m thanh bo khi hi@n thPthng 6i3p 6i km theo sMkhc n4 . 1 0 . 1 . 4 . Xy d 8n g t h am s -c h o M s g B o x

    S@s7d:ng tudbiAn h5p thng bo, bCn ph)i biAt ph=i h2p cc thng s=v nt l3nh. Vi3c s7

    trLng trong vi3c 6i?u khi@n ch,.ng trnh. S@hi@u chi tiAt, cc bCn xem v d:d,-i 6y.

    Trch:

    Hnh vMd,-i th@hi3n kAt qu)chCy Sub trn v h5p thng bo khi bCn chLn nt No. Trong Su

    Trch:

    Hnh 42: V d:v?cch tCo MsgBox trong VB v khi chLn nt No

    Sub Nhangui()Dim Truonghop As IntegerTruonghop = MsgBox("Ban co muon thoat khoi chuong trinh khong", vbYesNoCancel + vbtrinh tinh lun)If Truonghop = vbYes ThenMsgBox "Ban vua chon nut Yes.", vbInformationElseIf Truonghop = vbNo ThenMsgBox "Ban vua chon nut No.", vbCriticalElseIf Truonghop = vbCancel Then

    MsgBox "Ban vua bam nut Cancel.", vbExclamationEnd IfEnd Sub

    ElseIf Truonghop = vbNo Thenb\ngElseIf Truonghop = 7 Then

    Page 49 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    50/55

    4.10.2. Ph$:ng thJc InputBox (Inputbox Method)

    Nh\m th@hi3n h5p thoCi 6@ng,Oi s7d:ng nhEp d8li3u vo.Khi s7d:ng ph,.ng th>c ny, m5t h5p thoCi sMcho hi3n ra 6@bCn vo d8li3u, chOcho ng,Oint OK hoDc Cancel, gi trPnhEn 6,2c 6,2c coi l chuIi (string). Sy l m5t cch 6@vo gi trtrnh chCy macro. BCn khng th@gn 6,2c l3nh khi chLn nt OK hay Cancel nh,trong MsgBo

    6,2c >ng d:ng khi 6Uu vo nhi?u s=li3u.Ph,.ng th>c InputBox FdCng t0ng qut

    Trch:

    Expression: m5t bi@u th>c tr)v?6=i t,2ng Application.

    Trong 6:

    Trch:

    V d::

    Trch:

    expression.InputBox(prompt [, title] [, default], [, left], [, top] [helpfile, context] [, typ

    prompt l n5i dung lOi nhXc cRa h5p vo d8li3u.title l tudchLn n5i dung ch8trn 6Uu h5p vo d8li3u.left l tudchLn kho)ng cch tGgc bn tri h5p thoCi 6An gc bn tri mn hnh (mDc 6PnS.n vPtnh l l 6i@m (point), m5t 6i@m b\ng 1/72 inch hay kho)ng 1/28 cm. Ch>c n&ngtop l tudchLn kho)ng cch tG6Jnh h5p thoCi 6An 6Jnh mn hnh (mDc 6Pnh l h5p [email protected] l tudchLn v 6i?u khi@n file tr2gip no 6@s7d:ng.context l tudchLn v l s=th>t+tnh hu=ng trong helpfile. NAu helpfile c th m:c contetype l tudchLn biAn s=6Uu vo. Trong tr,Ong h2p bYqua, gi trP6Uu vo coi nh,l chu

    Sub VD_Input()Dim DangmangDim Cot, Hang As Integer

    Set Mang = Application.InputBox("Vao mang:", "Linh tinh", Type:=8)Cot = Dangmang.Columns.Count Tnh s=c5t chLnHng = Dangmang.Rows.Count Tnh s=hng chLn

    Page 50 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    51/55

    KAt qu)vo d8li3u l m)ng d,-i 6y. Ngoi ra bCn cn thu 6,2c m5t s=thng tin v?m)ng 6

    Hnh 43: V d:v?s7d:ng InputBox

    Top

    4.11. Hnh &/ng lPp (Loop)

    Hnh 65ng lDp cho php bCn th+c hi3n m5t 6oCn ch,.ng trnh nhi?u lUn. Ch>c n&ng ny hAt sl m)ng. BCn c th@6i?u khi@n hnh 65ng lDp theo quy 6Pnh 6Dt ra. C cc ki@u hnh 65ng lD

    4.11.1. Do ... Loop

    Th+c hi3n m5t kh=i l3nh v-i s=lUn lDp xc 6Pnh. Trong 6, m5t bi@u th>c 6i?u ki3n dng so skhng. Si?u ki3n ph)i quy v?False (0) hoDc True (khc 0). M^u t0ng qut:

    Trch:

    V d::

    Trch:

    MsgBox "So cot la: " & CotMsgBox "So hang la: " & HangMsgBox "Dia chi o dau la: " & Dangmang.Cells(1, 1).AddressMsgBox "Dia chi o cuoi la: " & Dangmang.Cells(Cot, Hang).Address Address l thng tin 6Pa chJEnd Sub

    DoLoop

    Sub VD_Do()

    Page 51 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    52/55

    4.11.2. Do While ... Loop

    Th+c hi3n kh=i l3nh khi 6i?u ki3n True. Hnh 65ng sMlDp v-i 6i?u ki3n True, cho 6An khi 6i?u

    Trch:

    V d::

    Trch:

    4.11.3. Do ... Loop While

    T,.ng t+nh,Do While ... Loop, th+c hi3n kh=i l3nh khi 6i?u ki3n True. Hnh 65ng sMlDp v-ith sMthot ra. M^u t0ng qut:

    Trch:

    V d::

    Trch:

    m = 4 m nhEn gi trPban 6Uu l 4Do bXt 6Uu vng lDpm = m + 1 6Dt gi trPm t&ng (+ 1)MsgBox m h5p thng bo gi trPmIf m > 10 Then Exit Do nAu m > 10 th sMthot khYi DoLoop TiAp t:c lDp

    End Sub

    Do While Loop

    Sub VD_DoW_Loop()i = 1 SDt i lc 6Uu b\ng 1Do While i

  • 7/24/2019 Cng Thc & Hm Excel

    53/55

    4.11.4. Do Until ... Loop

    BCn c th@th+c hi3n cc kh=i l3nh tG6Uu vng lDp cho 6An khi 6i?u ki3n v^n True. SAn khi 6iny gi=ng nh,vng lDp For ... Next. M^u t0ng qut:

    Trch:

    V d::

    Trch:

    T,.ng t+6=i v-i Do ... Loop Until.

    4.11.5. For ... Next

    BCn c th@lDp hnh 65ng v-i s=lUn biAt tr,-c. Ta dng biAn 6Am t&ng dUn hoDc gi)m dUn tro

    Trch:

    BiAn 6Am, 6i@m 6Uu, 6i@m cu=i, b,-c nh)y l nh8ng gi trPs=. B,-c nh)y c th@l gi trPd,. khng 6,2c chJ6Pnh ra, mDc 6Pnh b,-c nh)y l 1.

    Trch:

    Trch:

    Do Until Loop

    Sub VD_DoU_Loop()i = 1Do Until i = 10Cells(i,5) = ii = i + 1MsgBox iLoopEnd Sub

    For = To [Step ]Next []

    V d:1: Khng dng StepSub VD_ForNext()For i = 1 To 5Cells(10, i) = iMsgBox iNextEnd Sub

    V d:2: Dng StepSub VD_ForNext_Step()For i = 1 To 7 Step 2

    Page 53 of 554. Ham tu tao

    4/11/2009mk:@MSITStore:D:\SETUP\TRINH%20VAN%20BAN\Excel_Function_and_Formul...

  • 7/24/2019 Cng Thc & Hm Excel

    54/55

  • 7/24/2019 Cng Thc & Hm Excel

    55/55

    4.11.8. Vng lPp lDng

    Vng lDp c th@6,2c l[ng vo nhau. gng d:ng ny rBt c hi3u qu)khi bCn tnh ton v-i m)n

    V d::

    Trch:

    KAt qu)th@hi3n Fhnh vMd,-i 6y:

    Hnh 44: S)n ph]m tCo ra khi dng vng lDp l[ng.

    Top

    SubCellsExample()For i = 1 To 5For j = 1 To 5Cells(i, j) = "Row " & i & " Col " & jNext jNext iEnd Sub

    2 0 0 6 - 2 0 0 8 G i ) i P h p E x c e l - www.giaiphapexcel.co

    Page 55 of 554. Ham tu tao

    http://www.giaiphapexcel.com/http://www.giaiphapexcel.com/