Professional Documents
Culture Documents
2.2. Chy macro khi s dng bng iu khin macro (Macro dialog box)
TOP
Bn cho chy macro trn t Sheet2 nh sau:
1. Chn sang Sheet2 v bm vo no ngoi B3.
2. Trong menu Tools/Macro, chn Macros (hnh 1).
3. Bm vo macro c tn Address_abs trong danh sch macro (hnh 4).
4. Bm vo nt Run.
Sau bn s thy ni dung Sheet2 ging nh Sheet1.
4. Sa macro
TOP
Khi bn ghi macro u tin, Excel to ra molule trong workbook . Module cha cc lnh (code) c vit trong VBA. Cc bc thc hin nhn thy
module:
[code/1. T menu Tools/Macro chn Macros.
2. Chn macro Address_abs v bm vo nt Edit.[/code]
Ca s Microsoft Visual Basic hin ra nh hnh 13. Bn c th thy r c cc dng code tng macro khi cun xung.
Khai bo bin s l th tc tc ng n quy trnh x l v khng b thay i bi th tc khc. Nhng bin s m vt qu vng ca loi d liu quy nh (trong
bng trn) th bin s b li Overflow (trn b nh).
V d v s dng Dim trong khai bo bin s:
Sub Kieudulieu()
Dim Tuoi As Integer Tui l s nguyn
Dim Caodo As Single Cao l s
Dim Ten As String Tn ngi l chui
Bai viet duoc tong hop tu Internet
Hnh v 16: Khai bo Option Explicit v bin dng chung trn cng
Trong v d tip theo, bin s khai bo gi tr ban u (bng 0) v sau khi s dng phng php m cc trong vng B1:B10 tho mn iu kin gi tr
(value) trong nh hn 40. Bin s D s b thay i.
Sub VD_Bienso()
Dim Marks As Range
Dim C, D As Integer
Set Marks = Range(B1:B10)
D=0
Bai viet duoc tong hop tu Internet
6.4. Cc file v d
TOP
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:
Bai viet duoc tong hop tu Internet
8. Vit macro
TOP
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).
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:
Bai viet duoc tong hop tu Internet
8.2. Sa cha li
TOP
Khi bn g mt dng code trong macro v g Enter, Excel s kim tra dng . Nu n tm c s hng m hiu c, v d nh range, th s tr thnh Range
(ch r t ng chuyn thnh ch hoa R u).
Nu code thiu hoc tm ra li, Excel s bin ni dung thnh mu v hin ra bng thng bo li (hnh 39). C nhiu loi li khc nhau, tu vo li c th
m c tng kiu ni dung bng thng bo.
10.1. Cu lnh IF
TOP
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>]
[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.
Bai viet duoc tong hop tu Internet
11.1.2. M t thng s cc nt
TOP
Ghi ch: Ti mi kiu thng ip, m thanh bo khi hin th thng ip i km theo s khc nhau.
11.1.4. Xy dng tham s cho MsgBox
TOP
s dng tu bin hp thng bo, bn phi bit phi hp cc thng s v nt lnh. Vic s dng hp MsgBox c ngha rt quan trng trong vic iu khin
chng trnh. hiu chi tit, cc bn xem v d di y.
Sub Nhangui()
Dim Truonghop As Integer
Truonghop = MsgBox("Ban co muon thoat khoi chuong trinh khong", vbYesNoCancel + vbQuestion + vbDefaultButton1,Chuong trinh tinh lun)
If Truonghop = vbYes Then
MsgBox "Ban vua chon nut Yes.", vbInformation
ElseIf Truonghop = vbNo Then
MsgBox "Ban vua chon nut No.", vbCritical
ElseIf Truonghop = vbCancel Then
MsgBox "Ban vua bam nut Cancel.", vbExclamation
Bai viet duoc tong hop tu Internet
V d:
Sub VD_Input()
Dim Dangmang
Dim Cot, Hang As Integer
Set Mang = Application.InputBox("Vao mang:", "Linh tinh", Type:=8)
Cot = Dangmang.Columns.Count Tnh s ct chn
Hng = Dangmang.Rows.Count Tnh s hng chn
MsgBox "So cot la: " & Cot
MsgBox "So hang la: " & Hang
MsgBox "Dia chi o dau la: " & Dangmang.Cells(1, 1).Address
MsgBox "Dia chi o cuoi la: " & Dangmang.Cells(Cot, Hang).Address
Address l thng tin a ch
End Sub
Kt qu vo d liu l mng di y. Ngoi ra bn cn thu c mt s thng tin v mng nh s hng, s ct, a ch ,...
Sub VD_Do_LoopW()
i=1
Do
Cells(i,3) = i
i=i+1
Msgbox i
Loop While i <= 10
End Sub
V d:
Kt qu vo d liu l mng di y. Ngoi ra bn cn thu c mt s thng tin v mng nh s hng, s ct, a ch ,...