Professional Documents
Culture Documents
Excel - Webkynang.vn - Giao Trinh VBA PDF
Excel - Webkynang.vn - Giao Trinh VBA PDF
MC LC1
1. Ghi v thc hin macro ..................................................................................... 4
1.1. Ghi macro trong trng hp s dng tham chiu a ch tuyt i ........ 5
1.2. Chy macro khi s dng bng iu khin macro (Macro dialog box) ...... 6
1.3. Ghi macro trong trng hp s dng tham chiu a ch tng i ...... 7
1.4. Dng phm tt thc hin mt macro (shortcut key) .............................. 8
2. Cch thc hin mt macro n gin ................................................................. 8
2.1. Thc hin macro t mt i tng ho trong worksheet...................... 9
2.2. Chy macro t nt lnh trn thanh cng c ............................................. 10
2.3. Chy macro t lnh trong menu ca Excel .............................................. 12
2.4. Thay i la chn trong macro ................................................................ 15
3. Sa macro ........................................................................................................ 15
3.1. Dng form chung (General form) ............................................................ 15
3.2. To ra nhng thay i .............................................................................. 17
4. Ng php VB (Visual Basic Grammar) .......................................................... 17
4.1. Cc i tng (Objects) ........................................................................... 17
4.2. Cc phng thc (Methods)..................................................................... 19
4.3. Cc thuc tnh (Properties)....................................................................... 20
4.4. Cc bin (Variables) ................................................................................. 20
4.4.1. Kiu d liu trong VBA ..................................................................... 21
4.4.2. Khai bo kiu d liu ........................................................................ 22
4.5. S dng mng (Array).............................................................................. 24
4.5.1. Mng c chiu di c nh ................................................................ 24
4.6. S dng With - End With ......................................................................... 26
5. S dng gip Help ..................................................................................... 26
5.1. Ti thi im ang vit code .................................................................... 27
5.2. S dng hp thoi gip vi ch c th........................................... 27
5.3. Trnh duyt i tng............................................................................... 28
5.4. Cc file v d ............................................................................................ 32
6. Mt s chc nng iu khin trong VBA ....................................................... 33
1
Daipv78@gmail.com
1
Sch Lp trnh Excel bng VBA
3
Sch Lp trnh Excel bng VBA
4
Sch Lp trnh Excel bng VBA
5
Sch Lp trnh Excel bng VBA
6
Sch Lp trnh Excel bng VBA
7
Sch Lp trnh Excel bng VBA
8
Sch Lp trnh Excel bng VBA
9
Sch Lp trnh Excel bng VBA
10
Sch Lp trnh Excel bng VBA
Code:
1. Xo sch ni dung ca Sheet2.
2. Bm chut vo nt Smiley Face trong thanh cng c Macro1.
Kt qu s th hin trn Sheet2.
2.3. Chy macro t lnh trong menu ca Excel
T menu ca Excel bn c th thm cc menu mi m khi la chn chng
th macro s chy. V d: To menu mi c tn l Work Address c th cha
menu con Macro2 trn thanh tiu chun nh sau:
1. Phi m bo rng workbook ang cha macro ca bn ang hot
ng.
2. Thm mt worksheet mi bng cch vo menu Insert/Worksheet (t
l Sheet4)
3. Trong menu Tools/Customize, chn tab Commands trong bng
Customize.
4. Cun xung dng cui cng v chn New Menu trong Categories
(hnh 9).
5. Gi tri chut New Menu trong Commands v ko vo dng menu
cnh Help.
6. n phi chut vo New Menu trong menu ca Excel, thc n tt
hin ra.
7. Thay tn mi trong Name l &Macro2. Nu ch cn 1 menu ny th
bm vo Assign Macro chn (hnh 10). Cn nu cn thm cc menu con
(menu item) th khng cn.
12
Sch Lp trnh Excel bng VBA
13
Sch Lp trnh Excel bng VBA
14
Sch Lp trnh Excel bng VBA
15
Sch Lp trnh Excel bng VBA
16
Sch Lp trnh Excel bng VBA
17
Sch Lp trnh Excel bng VBA
19
Sch Lp trnh Excel bng VBA
Range(B3).Select
4.3. Cc thuc tnh (Properties)
Mi i tng u c cc c im ring. Thng thng thuc tnh iu
khin hnh dng xut hin ca i tng.
i vi i tng Range, cc thuc tnh c trng nh sau:
Code:
ColumnWidth
Font
Formula
Text
Value
Thuc tnh c th c coi gn nh l tnh t. N c thit lp s dng
trong cu lnh nh sau:
Object.Property = Value hay Noun.Adjective = Value
Vi macro trn:
ActiveCell.FormulaR1C1 = Nguyen Van Hung
Tt c cc i tng u c thit lp cc phng php (methods) v
nhng thuc tnh (Properties) trong chng.
Cu lnh nh
Range(C3).ColumnWidth = 14
s thit lp chiu rng ca ct cha C3 rng 14. Excel mc nh chiu
rng ca ct l 8.43 im (point).
4.4. Cc bin (Variables)
Cng nh cc ngn ng lp trnh khc, bn c th s dng cc bin trong
vic tnh ton. Bnh thng, VBA khng yu cu khai bo (declare) nhng bin.
VBA lun t ng lu gi i vi nhng bin vo ln u tin bn s dng.
Nhng bin c to ra t ng l cc dng ca bin th (Variant) v c th l
nhng kiu d liu nh cc chui (strings), s (numbers), gi tr Boolean, cc li
(errors), cc mng (arrays) hoc nhng i tng (objects).
V d di y l khai bo n nh l s 34 i vi bin X.
X = 34
Trong v d di y, bin s Number1 v Number2 c a ra gi tr
ban u v s dng chng trong tnh ton (v chng l s).
Number1 = 3
20
Sch Lp trnh Excel bng VBA
Number2 = 9
Mynumber = Number*Number2
4.4.1. Kiu d liu trong VBA
Mi ng dng thng x l nhiu d liu, ta dng khi nim bin lu
tr d liu trong b nh my tnh, mi bin lu tr 1 d liu ca chng trnh.
Mc d VBA khng i hi, nhng ta nn nh ngha r rng tng bin trc
khi truy xut n code ca chng trnh c trong sng, d hiu, d bo tr v
pht trin. Nu bn cn nhng s liu c c trng ring (nh s nguyn, thp
phn, chui, mng,...) s dng trong macro, bn c th khai bo bin .
Cng nh quy nh t tn ca macro, cch t tn cho bin nh sau:
Tn bin c th di n 255 k t.
K t u tin phi l mt k t ch (letter), cc k t tip theo c th l
cc k t ch (letter), k s (digit), du gch di (_).
Tn bin khng c cha cc k t c bit nh cc k t : ^, &, ),(,%,
$, #, @, !, ~, +, -, *,
VBA khng phn bit ch HOA hay ch thng trong tn bin.
Nn chn tn bin ngn gn nhng th hin r ngha.
Khi vit tn bin ta nn vit hoa ch u tin ca mt t c ngha.
Khng c dng tn bin trng vi cc t kho nh : Print, Sub,
End(t kha l nhng t m ngn ng VBA dng cho nhng thnh phn
xc nh ca ngn ng
21
Sch Lp trnh Excel bng VBA
End Sub
Kt qu th hin hnh v di y:
Hnh v 16: Khai bo Option Explicit v bin dng chung trn cng
23
Sch Lp trnh Excel bng VBA
24
Sch Lp trnh Excel bng VBA
25
Sch Lp trnh Excel bng VBA
26
Sch Lp trnh Excel bng VBA
27
Sch Lp trnh Excel bng VBA
28
Sch Lp trnh Excel bng VBA
29
Sch Lp trnh Excel bng VBA
30
Sch Lp trnh Excel bng VBA
31
Sch Lp trnh Excel bng VBA
5.4. Cc file v d
Excel a ra mt s file v d c tn l Samples.xls. Hu ht i vi mi
phin bn Excel khc nhau th ng dn n file ny cng khc nhau. Trong
Excel 2003, bn c th tm thy file ny ti ng dn sau:
C:\Program Files\Microsoft Office\Office10\Samples.xls ???
Samples.xls cp nhiu ng dng ca Excel. Mi sheet hng dn mt
phn cng vic. Ni dung c lin quan n VBA l Chart Labeling, Repeating
Tasks, Arrays, API examples, Events, Automation, ADO,... Hnh nh v file
Samples. xls trong Excel 2000.
32
Sch Lp trnh Excel bng VBA
33
Sch Lp trnh Excel bng VBA
34
Sch Lp trnh Excel bng VBA
35
Sch Lp trnh Excel bng VBA
36
Sch Lp trnh Excel bng VBA
37
Sch Lp trnh Excel bng VBA
38
Sch Lp trnh Excel bng VBA
39
Sch Lp trnh Excel bng VBA
7. Vit macro
Khi bn tin hnh ghi (record) macro, Excel s t ng to module v b
sung n vo trong workbook v vit li nhng hnh ng bn ghi thuc v
module .
Khi bn mun vit m (code) trong workbook, bn c th b sung module
trong workbook . S ghp ni cho pht trin macro c gi l Visual Basic
Integrated Development Evironment (IDE). Macro c trong module c hin
ra trong IDE thay th cho bng tnh trong workbook (nh Excel i trc 97).
7.1. Vit macro
Trc tin chuyn sang workbook mi (nhng cho php workbook c
vn m) nh sau:
1. Tip theo bm chut vo nt New trong thanh cng c (toolbar), hoc
vo menu File ri chn New.
2. Bm chut phi ti tn ca Sheet1 v chn Rename trong menu tt.
3. G ni dung Text ri n Enter.
Vit macro:
1. T menu Tools/Macros bn chn Visual Basic Editor.
2. Trong ca s Microsoft Visual Basic bn vo menu Insert v chn
Module (hnh 36).
3. Nu cn, bn c th thay i tn ca module theo mun. Trong ca
s Properties, bn cnh (Name) bn chn Module1 v sa thnh Chuongtrinh.
4. Bm vo vng trng ca ca s Chuongtrinh (phn code).
5. G Sub MyFirst ri bm Enter. Khi Excel s t ng in () v End
Sub, th hin nh hnh 36.
6. G cc lnh tng bc mt theo s m t di. Bn c th c c
nhng gip trong Sub Address_abs() ti mc 4 v hnh 13.
Trc , macro ca bn cha cc lnh n gin.
- Bc 1: Chn sheet c tn Text (dng Sheets(Text).Select)
- Bc 2: G on I can write macros! trong B2 trong sheet .
- Bc 3: Bi m ch.
Cui cng, bn kim tra (test) li macro Text:
1. Quay tr v sheet Text.
2. T menu Tools/Macros chn Macros.
3. Trong ca s Macros, bn chn macro c tn l MyFirst v chn Run.
Mi vic s tt p, on ch m I can write macros! s c nhp vo
B2.
40
Sch Lp trnh Excel bng VBA
41
Sch Lp trnh Excel bng VBA
42
Sch Lp trnh Excel bng VBA
43
Sch Lp trnh Excel bng VBA
V d 1:
Range(A1:A3).Select
th vng A1:A3 s c chn (bi en)
V d 2:
Vi workbook c tn Popupmenu, trong worksheet Sheet1, bn gn ni
dung Bo mon DCCT vo B3. Sau cho ni dung ch m, nghing, mu
v nn mu vng.
Code:
Sub Thunghiem()
Workbook(Popupmenu).Sheets(Sheet1).Range("B3").Select
ActiveCell.FormulaR1C1 = "Bo mon DCCT"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.ColorIndex = 3
With Selection.Interior
44
Sch Lp trnh Excel bng VBA
.ColorIndex = 6
.Pattern = xlSolid
End With
Range("B4").Select
End Sub
Hng dn chn vng tt:
Bn c th dng ngoc vung [ ] chn vng thay v (). So snh vi v
d nh sau:
[A1:A3].Select l cch chn vng ging nh Range(A1:A3).Select
thay i ni dung bi: PhanTuHuong, 05-12-06 lc 12:49 PM
8.2. S ch mc (Index numbers)
Thuc tnh Cells c th s dng tr v i tng mng l n. S ch
mc hng v ct ca cung cp cho Cells(row_no,col_no). Nu m khng c s
hng v ct th Cells() s tr v i tng l ton b trong sheet (ging nh
phm tt Ctr + A).
V d 1:
Cells(4,1) tr v A4
Cells() tr v ton b trong sheet
V d 2:
Worksheets(Sheet2).Cells(3,2).Value = 2000
tr v s 2000 trong B3 ti Sheet2, trong workbook hin hnh.
Ghi ch: Thuc tnh Cells c ng dng nhiu khi vit cc vng lp gia
cc .
8.3. S hng v s ct (Rows and Columns)
y l mt cp thuc tnh c gi l Rows v Columns, chng gip bn
c th lm vic vi ton b dng hoc ct.
Code:
Tham chiu cp n
__________________________________________________
Rows(4) Hng s 4
Rows Ton b dng trong sheet hin hnh
Columns(4) Ct D (ct th 4)
Columns(D) Ct D
Columns Ton b ct trong sheet hin hnh
45
Sch Lp trnh Excel bng VBA
V d:
Worksheets(Week4).Rows(2).Font.Bold = True
cho kt qu l ton b hng 2 trong sheet Week4 ch m ca workbook
hin hnh.
Ghi ch: Bn c th thc hin i vi nhiu hng v ct khi s dng
phng thc Union.
V d v s hp nht gia hai vng Range1 v Range2 khi s dng
phng thc Union c in y bi cng thc =RAND()
Worksheets("Sheet1").Activate
Set Vung = Application.Union(Range("Range1"), Range("Range2"))
Vung.Formula = "=RAND()"
8.4. t tn cho vng (Named ranges)
Vi mt s trng hp bn phn chia vng cc ra vi tn xc nh d
truy cp v nghin cu. Cng vic ny gn ging nh khi bn s dng chc
nng t tn cho vng trong Excel (xem trong menu Insert/Name/Define...).
Khi bn chn tn nhng vng th Excel s truy cp n vng m bn la
chn. Bn phi t tn nhng vng trc khi vit macro hay dng chnh
macro to tn ca vng.
8.4.1. Tn c to ra ngoi macro
t tn cho vng, u tin bn chn chn nhng bng cch bi
en, sau bn bm vo phn Name Box (phn gc trn bn tri, cng hng vi
thanh cng thc). Sau t tn ca vng ri Enter.
Gi thit rng bn t tn Congty cho cc C2:C8 trong sheet Danhsach
ca workbook Quanly (hnh 40).
V d 1: s lm cc trong vng C2:C8 m ln.
Range([Quanly.xls]Danhsach!Congty).Font.Bold = True
V d 2: Nu workbook Quanly v worksheet Danhsach ang hin hnh,
th
Range(Congty).Font.Bold = False
s lm cc trong vng C2:C8 mt m (ch bnh thng).
46
Sch Lp trnh Excel bng VBA
48
Sch Lp trnh Excel bng VBA
49
Sch Lp trnh Excel bng VBA
Range(B5).Formula = =R[-3]C[2]-R[-1]C[2]
V d 3:
Thay i cng thc thnh gi tr kt qu.
G6 c cng thc l =G5*G4. V d G5 c gi tr l 2, G4 c gi tr
l 3, nh vy gi tr nhn c ca G6 l 6. Ta s thay ni dung hm thnh gi
tr l 6.
Range(G6).Select
ActiveCell.FormulaR1C1 = =R[-1]C:R[-2]C
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Dng lnh cui cng l lnh hu b ch trng thi Cut/Copy (ng
gch nhp nhy bao quanh chn).
9. Cu trc iu khin
Mt s trng hp, bn phi s dng macro kim tra nhng iu kin
c bit trong worksheet v iu khin chng p ng c yu cu ra.
Vi mi iu kin khc nhau th macro s thc hin cng vic khc nhau.
Vi cu trc iu khin nh vy khng th t ng ghi c, bn phi
vit chng trong Visual Basic.
9.1. Cu lnh IF
y l kiu n gin nht, mu ca cu lnh IF nh sau:
If <iu kin> Then <dng lnh 1> [Else <dng lnh 2>]
Trong ch dn trn, cc thng s trong [ ] l tu chn, c th b qua nu
thy khng cn thit.
Nu <iu kin> c toi nguyn (ng - True) th <dng lnh 1> c
thc hin, cn nu khng c toi nguyn (sai - False) th <dng lnh 2> c
thc hin.
Thng thng, bn hay s dng cu lnh If ... then ... Else m khng cn
phi gii hn s dng lnh. Mu nh sau:
If <iu kin1> Then
<Khi lnh 1 thc hin>
[ElseIf <iu kin2>
<Khi lnh 2 thc hin>]
[ElseIf <iu kin3>
<Khi lnh 3 thc hin>]
50
Sch Lp trnh Excel bng VBA
[Else
<Khi lnh 4 thc hin>]
End If
Trong mu tng qut trn, t kho ElseIf v Else l tu chn (nh biu
th trong du ngoc vung). u tin VB kim tra iu kin th nht, nu sai th
s chuyn sang iu kin th 2,... cho n khi iu kin ng. VB thi hnh khi
lnh tng ng v sau , thi hnh dng chng trnh ngay sau End If.
V d:
Macro di y tm kim gi tr ti A1 (l im trung bnh mn hc).
Nu 10 > A1 8.0 : Hc lc gii;
Nu 8 > A1 6.5 : Hc lc kh;
Nu 6.5 > A1 5.0 : Hc lc trung bnh;
Nu 5 > A1 0 : Hc lc km.
B2 th hin kt qu hc lc.
Sub Hocluc()
Sheets(Sheet1).Select
Range(A1).Select
If ActiveCell >= 8 Then
Range(B2).Value = Hc lc gii
ElseIf ActiveCell >= 6.5 Then
Range(B2).Value = Hc lc kh
ElseIf ActiveCell >= 5 Then
Range(B2).Value = Hc lc trung bnh
Else
Range(B2).Value = Hc lc km
End If
End Sub
Ghi ch: Bn c th b qua dng Range(A1).Select v thay bng If
Range(A1).Value >= 8 Then.
Ngoi ra, bn cng c th s dng If kt thc macro, cu lnh nh sau
c th s dng kt thc macro.
If ActiveCell = Then End Sub
(nu hin hnh m trng th s kt thc Sub, khng cn phi c End If)
51
Sch Lp trnh Excel bng VBA
V d:
Gi s bn tm kim gi tr ca mt v bn mun kt qu nh sau
Dng macro khi trng.
Nhp gi tr Tt vo ngay bn phi nu c gi tr ln hn 40.
Nhp gi tr Km vo ngay bn phi nu c gi tr nh hn 40.
Sub user_If()
If ActiveCell.Value = "" Then Exit Sub
If ActiveCell.Value >= 40 Then
ActiveCell.Offset(0, 1).Value = "Tt"
Else
ActiveCell.Offset(0, 1).Value = "Xu"
End If
End Sub
9.2. S dng Select Case
Select Case l mt dng ca If ... Then ... Else, c s dng khi c nhiu
iu kin chn lc gi tr. Cu lnh nh sau:
Select Case <biu thc kim tra>
[Case <biu thc 1>
<khi lnh 1>]
[Case <biu thc 2>
<khi lnh 2>]
[Case <biu thc 3>
<khi lnh 3>]
....
[Case Else <biu thc n>
<khi lnh n>]
End Select
Mi danh sch biu thc c 1 hay nhiu gi tr. Cc gi tr cch nhau bng
du phy (,). Cn gi tr bin i trong vng th bn s dng t kho To. Mi
khi lnh c th cha 0 hay nhiu dng lnh. Nu biu thc no tho mn iu
kin th khi lnh tng ng s thc hin. Case Else khng nht thit phi c,
dng trong trng hp cn li ca cc Case trc.
52
Sch Lp trnh Excel bng VBA
V d:
B2 cha gi tr st ca t, C2 s th hin trng thi ca n.
Sub Trangthai()
Sheets(Sheet1).Select
Doset = Cells(2,2).Value
Select Case Doset
Case 1, 1 to 10
Cells(2,3).Value= Chy
Case 0.75 to 1
Cells(2,3).Value= Do chy
Case 0.5 to 0.75
Cells(2,3).Value= Do mm
Case 0.25 to 0.5
Cells(2,3).Value= Do cng
Case 0 to 0.25
Cells(2,3).Value= Na cng
Case < 0
Cells(2,3).Value= Cng
End Select
End Sub
9.3. Xy dng cc iu kin
Trong nhiu trng hp, iu kin lc d liu tr nn kh phc tp.
Nu ch s dng If hay Select Case th cng vic s rt cng knh, rc ri. Trong
hon cnh , And v Or gip bn thc hin cng vic , gip chng trnh
sng sa v d c.
9.3.1. S dng And
Cu lnh nh sau:
If <iu kin 1> And <iu kin 2> Then
<khi lnh 1>
Else
<khi lnh 2>
End If
`
53
Sch Lp trnh Excel bng VBA
54
Sch Lp trnh Excel bng VBA
ElseIf Hsr > 0.9 And Chisodeo >= 1 And Doset > 1 Then
MsgBox "Day la dat BUN CAT PHA!"
Else
MsgBox "Chua ro ten dat!!!!"
End If
End Sub
10. Hp thoi trong VBA
Hp thoi (Dialog) l mt trong nhng cch thc Windows giao tip
vi ngi s dng. Di y l 2 loi hp thoi m bn d dng to ra iu
khin trong sut qu trnh chy macro (MsgBox v InputBox).
10.1. Hp thng bo (Message box)
Cu lnh MsgBox s cho hin ln trn mn hnh mt hp thng bo, gi
tr nhn c l bin s (variable) trong macro (nh hnh 18). S dng MsgBox
gip bn rt hiu qu trong vic g ri (hoc tm ch sai, gi tr trung gian,...)
khi xy dng chng trnh.
Hm MsgBox dng tng qut
MsgBox (prompt [, buttons] [, title] [, helpfile, context])
Trn mn hnh s hin hp thng bo v i bn bm chut vo nt chn
v tr v gi tr nguyn no khi bn chn loi nt.
prompt l ni dung li nhc ca hp thng bo.
buttons l tu chn loi nt iu khin (nh Yes, No, OK)
title l tu chn ni dung ch trn u hp thng bo
helpfile l tu chn v iu khin file tr gip no s dng.
context l tu chn v l s th t tnh hung trong helpfile. Nu helpfile
c th mc context cng phi c.
10.1.1. Cc loi thng ip trong buttons
55
Sch Lp trnh Excel bng VBA
10.1.2. M t thng s cc nt
56
Sch Lp trnh Excel bng VBA
57
Sch Lp trnh Excel bng VBA
V d:
Sub VD_Input()
Dim Dangmang
Dim Cot, Hang As Integer
58
Sch Lp trnh Excel bng VBA
59
Sch Lp trnh Excel bng VBA
V d:
Sub VD_Do()
m = 4 m nhn gi tr ban u l 4
Do bt u vng lp
m = m + 1 t gi tr m tng (+ 1)
MsgBox m hp thng bo gi tr m
If m > 10 Then Exit Do nu m > 10 th s thot khi Do
Loop Tip tc lp
End Sub
11.2. Do While ... Loop
Thc hin khi lnh khi iu kin True. Hnh ng s lp vi iu kin
True, cho n khi iu kin False th s thot ra. Mu tng qut:
Do While <iu kin>
<khi lnh>
Loop
V d:
Sub VD_DoW_Loop()
i = 1 t i lc u bng 1
Do While i <= 10 t gii hn cho i, nu False th thot
Cells(i,1) = i Gn i vo
i = i + 1 Cho gi tr i tng dn
MsgBox i Hp thng bo gi tr i
Loop Tip tc lp
End Sub
11.3. Do ... Loop While
Tng t nh Do While ... Loop, thc hin khi lnh khi iu kin True.
Hnh ng s lp vi iu kin True, cho n khi iu kin False th s thot ra.
Mu tng qut:
Do
<khi lnh>
Loop While <iu kin>
60
Sch Lp trnh Excel bng VBA
V d:
Sub VD_Do_LoopW()
i=1
Do
Cells(i,3) = i
i=i+1
Msgbox i
Loop While i <= 10
End Sub
11.4. Do Until ... Loop
Bn c th thc hin cc khi lnh t u vng lp cho n khi iu kin
vn True. n khi iu kin False th s thot ra. Phng thc ny ging nh
vng lp For ... Next. Mu tng qut:
Do Until <iu kin>
<khi lnh>
Loop
V d:
Sub VD_DoU_Loop()
i=1
Do Until i = 10
Cells(i,5) = i
i=i+1
MsgBox i
Loop
End Sub
Tng t i vi Do ... Loop Until.
11.5. For ... Next
Bn c th lp hnh ng vi s ln bit trc. Ta dng bin m tng
dn hoc gim dn trong vng lp.
For <bin m> = <im u> To <im cui> [Step <bc nhy>]
<khi lnh>
Next [<bin m>]
61
Sch Lp trnh Excel bng VBA
62
Sch Lp trnh Excel bng VBA
Next mySheet
MsgBox "So sheet trong workbook la " & i
End Sub
11.7. Lnh thot (Exit)
Trong mt s trng hp, bn c th thot khi cng vic no khi
tho mn yu cu cng vic. Bn c th s dng th tc Exit nh Exit Do (thot
khi vng lp Do ... Loop), Exit For (thot khi vng For ... Next), Exit
Function (thot khi hm), Exit Sub (thot khi chng trnh), Exit Property
(thot khi thuc tnh ang lm vic).
V d:
Sub ExitStatementDemo()
Dim I, MyNum
Do ' t vng lp Do Loop
For I = 1 To 1000 ' Lp 1000 ln
MyNum = Int(Rnd * 1000) ' To s nguyn ngu nhin
Select Case MyNum ' Tnh ton vi s nguyn trn
Case 7: Exit For ' Nu l 7, thot khi For...Next
Case 29: Exit Do ' Nu l 29, thot khi Do...Loop
Case 54: Exit Sub ' Nu l 54, thot khi vng Sub
End Select
Next I
Loop
End Sub
11.8. Vng lp lng
Vng lp c th c lng vo nhau. ng dng ny rt c hiu qu khi
bn tnh ton vi mng hay i vi bng tnh nhiu chiu.
V d:
SubCellsExample()
For i = 1 To 5
For j = 1 To 5
Cells(i, j) = "Row " & i & " Col " & j
Next j
Next i
End Sub
63
Sch Lp trnh Excel bng VBA
Kt qu th hin hnh v di y:
64