SlideShare une entreprise Scribd logo
1  sur  117
Télécharger pour lire hors ligne
NH NG K NĂNG TÙY BI N B NG TÍNH EXCEL
Nh ng m o nh v c u trúc m t b ng tính
M t trong nh ng l i mà chúng ta hay m c ph i khi t o m t b ng tính, là chúng ta không thi t l p và trình bày
d li u "theo cái cách mà Excel và các tính năng c a nó mong i". Sau ây là m t s l i ph bi n chúng ta hay
m c ph i khi thi t l p m t b ng tính:
• B trí d li u trong nhi u b ng tính (WorkBook) khác nhau
• B trí d li u trong nhi u trang tính (WorkSheet) khác nhau
• B trí d li u trong nhi u b ng (Table) khác nhau
• Có nh ng hàng tr ng và c t tr ng trong kh i d li u (database)
• B tr ng nh ng ô có d li u gi ng nhau (cùng chung m t ngày, cùng chung m t ơn v tính, v.v...)
Ba i m u tiên trên ây ch mu n nói n m t i u: B n nên luôn luôn c g ng gi các m i liên quan
gi a các d li u ư c liên t c trong cùng m t b ng d li u. Tôi ã th y r t nhi u các b ng tính không ư c
trình bày theo cái quy t c r t ơn gi n này, và chính vì v y, các b ng tính ó không th t n d ng ư c t i a các
tính năng m nh m c a Excel như PivotTable, SubTotal... B n ch có th s d ng các tính năng này khi b n
gom h t d li u c a b n vào trong m t b ng th t ơn gi n.
Không ph i ng u nhiên mà Excel có 1.048.567 hàng (65.536 hàng trong Excel 2003 tr v trư c) mà l i ch có
16.384 c t (256 c t trong Excel 2003 tr v trư c). i u này có ý nói r ng, b n nên thi t l p d li u c a mình
v i các tiêu c t n m hàng trên cùng, và các d li u có liên quan thì n m liên t c bên dư i tiêu
c a nó. N u như b n có nh ng d li u ư c l p l i hai l n ho c nhi u l n trong các hàng c a cùng m t c t (các
ngày tháng, các lo i ơn v tính ch ng h n), b n hãy ch ng l i s cám d b tr ng các ô ó.
Hãy c g ng s p x p (sort) d li u c a b n b t c khi nào có th . Excel có r t nhi u nh ng công c tìm
ki m và tham chi u công th c, và m t s không nh trong ó, òi h i d li u ph i ư c s p x p theo m t th t
h p lý. Vi c phân lo i cũng s giúp ích áng k cho t c x lý c a m t s các hàm.
Nh ng m o nh khi nh d ng
Ngoài vi c thi t k c u trúc c a b ng tính cho h p lý, vi c nh d ng cho nó cũng là m t v n c n bàn n.
M c dù m t b ng tính nên ư c nh d ng sao cho d c và d theo dõi, nhưng chúng ta ít khi nghĩ n vi c s
d ng th i gian cho có hi u qu . Hãy luôn luôn nh d ng th t ơn gi n. R t nhi u ngư i lãng phí th i gian
vào vi c nh d ng m t b ng tính m c dù không nh t thi t ph i làm như v y, và chính i u này làm nh hư ng
n hi u qu công vi c. Vi c thư ng xuyên áp d ng nh ng nh d ng ph c t p cho b ng tính còn làm cho nó
tăng kích thư c, và cho dù b ng tính c a b n có th trông gi ng như m t tác ph m ngh thu t, nhưng nó l i có
th là m t n i s hãi cho ngư i khác. M t trong nh ng ki u ph i màu t t nh t mà b n nên áp d ng cho m t
b ng tính, là màu en, màu tr ng và màu xám.
M t g i ý n a, là nên b tr ng vài hàng u tiên trên cùng (ít nh t là 3 hàng). Nh ng hàng này s ư c
dùng cho nh ng tính năng nâng cao hơn v sau, ch ng h n như Advanced Filter, ho c dùng làm vùng i u ki n
cho các công th c x lý d li u (DSUM, DMAX, v.v...)
Cũng ng quan tâm n vi c canh l cho d li u. Theo m c nh, Excel canh ph i cho nh ng d li u ki u s ,
và canh trái cho nh ng d li u ki u text. Và ó là i u t t nh t r i, ng thay i nó. N u b n thay i ki u
canh l , b n s có th không xác nh ư c ngay t c kh c r ng ó là d li u ki u s hay d li u ki u text; và nó
còn có th gây nh m l n cho ngư i khác khi tham chi u n m t ô, vì nhi u khi h s tư ng r ng d li u trong
ô ó là s , nhưng th t ra nó là text. N u b n thay i ki u canh l m c nh, b n s b nh c u v i nó sau này.
Ch có tiêu c a b ng tính là ư c hư ng ngo i l mà thôi.
Ch nh d ng các ô theo ki u text khi th t s c n thi t. B i vì t t c nh ng d li u nh p vào trong các ô ã
ư c nh d ng trư c theo ki u text s b chuy n thành d li u ki u text, ngay c khi b n nghĩ r ng cái b n nh p
vào là d li u ki u s hay d li u ki u ngày tháng. Và t i t hơn n a, b t kỳ ô nào ch a công th c tham chi u
n m t ô ã ư c nh d ng theo ki u text, cũng s b nh d ng thành ki u text. Nói chung, b n âu có
mu n nh ng ô ch a công th c l i b nh d ng theo ki u text, ph i không.
Tr n các ô (merge cells) cũng là m t v n . Có m t s công th c ho c macro không th ch y ư c v i nh ng
ô ã ư c tr n. Cho nên, thay vì tr n ô, b n hãy dùng ch c năng "Center across selection", n m trong Home
➝ nhóm Alignment. Nh n vào cái mũi tên dư i cùng bên ph i, s m ra h p tho i Format v i tab
Alignment ư c ch n s n. B n s d ng thanh trư t d c c a khung Horizontal ch n Center Across
Selection. Ho c b n cũng có th right-click r i ch n Format Cells t shortcut menu. V i Excel 2003 tr v
trư c, b n m h p tho i này t menu Format ➝ Cells (Ctrl+1).
Nên s d ng Center Across Selection thay cho Merge Cells
Nh ng m o nh khi dùng công th c
M t sai l m r t l n khi s d ng công th c là cho nó tham chi u n toàn b các c t trong m ng d li u.
i u này làm cho Excel ph i ki m tra hàng ngàn ô, n u không nói là hàng tri u, ch c ch n không b sót m t
d li u nào.
Ví d , gi s b n có m t m ng d li u t A1 n H1000, và b n quy t nh s dùng nh ng hàm tìm ki m c a
Excel trích ra nh ng d li u c n thi t. B i vì b n còn ph i b sung thêm d li u vào m ng này, nên ch c
ăn, b n t o tham chi u trong công th c n toàn b các hàng c a các c t trong m ng này. Khi ó, tham chi u
c a b n có th s là A:H, ho c c th hơn, là A1:H65536. B n nghĩ r ng làm như v y thì b n s không lo l ng
gì khi thêm d li u vào trong m ng.
ó là m t thói quen vô cùng tai h i mà b n ph i luôn tránh xa nó. B i nó s làm cho b ng tính tr nên ì
ch, th m chí là không ch y n i. B n v n có th lo i b nh ng ph n không c n tham chi u ra kh i công th c,
mà l i b o m ư c nh ng d li u m i thêm vào s t ng ư c c p nh t trong tham chi u c a công th c,
b ng cách dùng Table (List trong Excel 2003 tr v trư c) ho c s d ng các Name ng.
M t v n n a thư ng x y ra v i nh ng b ng tính l n, mà c u hình máy l i nh , là Excel tính toán r t ch m
khi d li u ư c c p nh t. gi i quy t v n này, b n thư ng ư c khuyên là hãy chuy n i ch tính
toán c a Excel thành d ng Manual: Nh n vào nút Office góc trái phía trên c a b ng tính, r i ch n Excel
Options ➝ Formulas (v i Excel 2003 tr v trư c, ch n menu Tools ➝ Options ➝ Calculations), r i ch n
Manual :
Ch n Manual Caculation v i Excel 2007
Ch n Manual Caculation v i Excel 2003
Tuy nhiên, l i khuyên ó thì không hay cho l m, mà ch là mang tính i phó. M t b ng tính thì bao gi cũng
có nh ng công th c tính toán, n u b n ang ch y m t b ng tính trong ch tính toán Manual, có th b n s ch
có ư c nh ng thông tin cũ mèm, chưa h ư c c p nh t. N u mu n có ư c thông tin chính xác, b n ph i nh n
F9. Nhưng, ch c ch n là không ph i lúc nào b n cũng nh i u này! V y b n th cân nh c xem: N u như
c n th ng chân b k t và làm cho chi c xe hơi c a b n ch y ch m l i, b n s s a l i c n th ng chân, hay là g b
cái th ng chân r i tin tư ng hoàn toàn vào cái th ng tay? Nghĩa là, khi b ng tính c a b n ch y ch m, b n s s a
l i công th c cho nó ch y nhanh hơn, hay là t nó vào ch tính toán b ng tay r i c th mà làm ti p? H u
như chúng tôi không bao gi làm i u này, nhưng r t nhi u ngư i ã không ng n ng i t b ng tính c a h
trong ch tính toán Manual. N u như b n th y r ng c n ph i t b ng tính c a mình trong ch tính toán
Manual thì m i làm vi c ư c, b n nên suy nghĩ n vi c thi t k l i b ng tính.
Công th c m ng là m t trong nh ng nguyên nhân c a v n trên. Chúng là m t l a ch n t t khi tham chi u
n nh ng ô riêng l . Nhưng n u b n dùng chúng tham chi u n nh ng dãy d li u l n, thì hãy s d ng
chúng càng ít càng t t. Khi có m t s lư ng l n các m ng tham chi u n m t dãy d li u l n, hi u su t c a
b ng tính s b nh hư ng, ôi khi nó d ng h n luôn, và b n b t bu c ph i dùng ch tính toán b ng tay.
Excel có nhi u hàm chuyên x lý nh ng d li u l n thay cho công th c m ng, mà s ư c c p n trong
chiêu th 79: Tránh l i #VALUE! khi tính t ng (SUM) ho c m (COUNT) các ô. Ngoài ra, trong Excel Help
có m t s ví d r t hay s giúp b n cách dùng công th c trên nh ng b ng d li u l n trích ra k t qu d a
theo nh ng tiêu chu n. Ho c b n có th s d ng Pivot Table, s ư c c p n trong ph n th 4 c a lo t bài
này. M c dù PivotTable thì có v ph c t p khi b n s d ng nó l n u tiên, nhưng chúng tôi thành th t khuyên
b n hãy h c cách s d ng nó. M t khi b n ã làm ch ư c PivotTable, ngày nào ó b n s t h i r ng làm sao
tôi có th s ng mà không có PivotTable!
Tùy bi n c a s làm vi c c a b ng tính
Excel cho phép hi n th ng th i nhi u b ng tính và cho phép tùy bi n cách hi n th và s p x p chúng. Sau
khi thi t l p các tùy bi n, chúng ta có th lưu thành m t t p tin workspace (không gian làm vi c) .xlw s
d ng l i sau này.
ôi khi khi làm vi c trong Excel, b n có th c n ph i có nhi u hơn m t workbook m trên màn hình c a b n
làm cho nó d dàng s d ng hơn hay xem d li u t nhi u b ng tính. Trong bài này s mô t cách th c hi n t
ch c c a s làm vi c m t cách g n gàn và có t ch c.
u tiên, b n hãy m t t c các b ng tính mà b n c n làm vi c:
Vào Office | Open…, gi phím Ctrl trong khi ch n các t p tin b ng tính c n m | nh n nút Open m các t p
tin. (E2003: File | Open...).
T c a s làm vi c c a m t b ng tính ang m nào ó, ch n Windows | View | Arrange All (E2003: Window
| Arrange). N u tùy ch n “Windows of active workbook” ang ư c ch n thì hãy b ch n, sau ó ch n ki u
s p x p và nh p nút OK.
N u ch n ki u s p x p Tiled (lát g ch) thì các c a s làm vi c c a b ng tính như hình sau:
N u ch n ki u s p x p Horizontal (n m ngang) thì các b ng tính s x p ch ng lên nhau như hình minh h a sau:
N u ch n ki u Vertical (th ng ng) thì các b ng tính ư c s p x p n m c nh nhau như sau:
N u ch n ki u Cascade (thác nư c) thì các b ng tính s x p è lên nhau như hình minh h a sau
Khi các c a s b ng tính ã ư c s p x p g n gàng, b n s r t d dàng thao tác và di chuy n d li u gi a các
c a s .
s d ng l i các thi t l p này sau này, b n có th lưu thành m t t p tin workspace. Các bư c th c hi n như
sau:
Ch n ngăn View | t i nhóm Window ch n Save Workspace (E2003: File | Save Workspace…) | nh p tên cho
workspace t i h p File Name, ch n nơi lưu và nh n nút OK. T p tin workspace s có ph n m r ng là .xlw
Mu n chuy n i m t b ng tính nào ó v ch toàn màn hình thì b n ch c n kích chu t hai l n lên thanh
Title (tiêu ) c a c a s b ng tính ó. B n cũng có th nh n nút Maximize trên c a s b ng tính hi n hành
phóng to c a s ho c nh n nút Close óng b ng tính sau khi ã hoàn t t công vi c v i c a s ó.
s d ng l i không gian làm vi c ã thi t l p trư c ó, b n ch c n m t p tin .xlw v a t o thì giao di n làm
vi c ư c b n thi t l p trư c kia s ư c khôi ph c. T t c các hi u ch nh hay c p nh t thông tin trong các b ng
tính c a workspace s ư c Excel nh c nh b n lưu l i khi b n ra l nh óng workspace.
N u m i ngày, b n u ph i th c hi n các công vi c l p i l p l i trên nhi u b ng tính. Tôi khuyên b n nên
dành m t ít th i gian thi t l p các ki u không gian làm vi c cho các b ng tính ó tùy thu c vào yêu c u tao
tác và x lý s li u c a chúng. Sau ó, b n ch vi c m t p tin .xlw cho ki u không gian làm vi c phù h p v i
nhu c u s d ng c a b n mà không c n ph i t n th i gian s p x p, t ch c các b ng tính các l n s d ng sau.
Nh p d li u ng th i vào nhi u sheet.
Thông thư ng ngư i dùng Excel có nh ng d li u mu n nh p vào nhi u sheet khác nhau. B n có th dùng công
c Group các sheet l i có th nh p d li u ng th i. Nhưng cũng có 1 cách khác nhanh chóng và linh ho t
hơn n u b n dùng vài dòng l nh VBA.
Nhưng ph i nói n công c Group cái ã nh ? Công c Group dùng nh p d li u vào nhi u sheet 1 lúc ch c
có nhi u ngư i chưa dùng n. Nó dùng k t n i các sheets v i nhau trong ph m vi work book.
1. Group các sheet l i b ng tay:
nhóm các sheet l i, các b n ch vi c click ch n sheet th nh t, nơi b n s nh p li u t bàn phím vào, r i v a
nh n Ctrl, v a nh n vào tên nh ng sheet khác mà b n mu n nh p li u ng th i. Khi b n gõ b t kỳ cái gì vào
sheet hi n hành, d li u ó cũng s t ng nh p vào các sheet còn l i trong nhóm. i p v hoàn t t nhanh
chóng (nghe gi ng 007 nh ).
thoát kh i tình tr ng group, b n ch vi c ho c click ch n 1 sheet khác ngoài nhóm, ho c click chu t ph i lên
tên 1 sheet trong nhómb t kỳ, ch n Ungroup Sheets. Ho n n u b n ch mu n g 1 trong s các sheet ra kh i
nhóm, hãy Ctrl click vào tên sheet ó.
Khi 2 hay nhi u sheet Group v i nhau, trên thanh tiêu c a Windows s có ch [Group] (tronh ngo c vuông).
Nhìn vào ó b n có th bi t b n v n còn ang trong tình tr ng group các sheets.
Tr khi b n có c p m t s c như chim ưng, ho c bén như dao c o, thư ng thì b n không ý n d u hi u này,
b n s quên và không ungroup khi công vi c ã xong. Chính vì th tôi khuyên b n ngay khi th c hi n xong thao
tác nh p li u hàng lo t vào các sheet, ph i ungroup chúng ngay.
Dù phương pháp này là d nh t, nhưng có nghĩa là b n ph i nh và nh group và ungoup khi c n, n u không
b n s vô tình ghi è lên d li u nh ng sheet mà b n không nhìn th y trên màn hình hi n th i. Thí d như b n
ch mu n ghi cùng lúc d li u vào 1 vùng nào ó c a các b ng tính, còn ngoài vùng ó thì d li u các sheet ph i
khác nhau. Th nhưng khi các sheet ã group r i thì nó có thèm quan tâm b n ang nh p li u vùng nào âu?
2. Group các sheet l i 1 cách t ng:
B n có th gi i quy t v n trên b ng cách dùng 1 o n code VBA h t s c ơn gi n. o n code làm vi c
ư c, nó ph i ư c t trong các s ki n c a riêng sheet nào b n mu n. vào trang so n th o code c a sheet
nào, thì click ph i chu t vào tên sheet ó và ch n View Code.
B n có th ch n 1 trong các s ki n c a sheet, nh ng s ki n ch liên quan n sheet ó như i ô ch n, thay
i n i dung 1 ô, kích ho t sheet, thoát kh i sheet, … th c thi o n code VBA c a mình.
Thư ng thì b n ư c ưa th ng n trang so n th o code riêng c a sheet n u b n ch n View Code như trên
hư ng d n. B n có th ki m tra l i qu th c nó thu c v sheet b n ch n hay không b ng cách nhìn vào c a s
VBA Project bên trái, n u b n th y d ng thư m c This Workbook – Sheetname và 1 sheet ang ch n thì úng.
n u không b n ph i tìm úng sheet b n c n và doubled click nó.
Trư c tiên b n ph i t name cho vùng ô b n mu n nh p d li u trùng trong các sheet, gi s là “MyRange”.
Sau ó gõ o n code này vào khung so n th o bên ph i:
PHP Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("MyRange"), Target) Is Nothing Then
Sheets(Array("Sheet5", "Sheet3", "Sheet1")).Select
Else
Me.Select
End If
End Sub
Trong o n code trên, sheet5 ư c ghi u tiên trong m ng Array, vì b n mu n nó là sheet mà b n s gõ d li u
nh p vào. B n có th ch n nh ng sheet khác group chúng l i bên dư i sheet5. Sau khi gõ code xong, ho c
nh n nút View Object, ho c nh n nút View Microsoft Excel, ho c nh n Alt- Q, Alt-F11 ho c óng h n c a s
VBA tr v màn hình Excel. Lưu b ng tính l i.
C n nh c l i r ng o n code trên ph i n m trong sheet ư c khai báo u tiên c a Array, là sheet mà b n s
nh p d li u t bàn phím.
Khi b n ã hoàn t t, m i khi b n click ch n 1 ô nào ó trong sheet5, o n code s ki m tra xem ô b n ch n có
n m trong vùng ã t tên “MyRange” không. N u úng, code s Group các sheet l i v i nhau b n nh p d
li u hàng lo t sheets. N u không ph i, nó ungroup chúng ra b ng cách ơn gi n là kích ho t sheet hi n hành.
Dùng o n code trên s ti n l i ch nó gi i phóng b n kh i cái vi c ph i nh Group khi b t u và UnGroup
khi k t thúc nh p li u trong vùng ch n.
Bây gi n u b n mu n nh ng d li u như nhau ư c nh p vào các sheet ch n, nhưng nh ng v trí khác nhau,
hãy dùng o n code khác:
PHP Code:
Private Sub worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("MyRange"), Target) Is Nothing Then
With Range("MyRange")
.Copy Destination:=Sheets("Sheet3").Range("A1")
.Copy Destination:=Sheets("Sheet1").Range("D10")
End With
End If
End Sub
o n code này cũng ph i ư c t trong khung so n th o c a riêng sheet5.
o n code này ho t ng khác v i o n code trên. Khi b n thay i n i dung c a 1 ô nào ó, code s xác nh
xem ô hi n hành có n m trong vùng "MyRange" hay không, n u ph i thì copy nguyên vùng "MyRange" (c a
sheet5) và paste vào ng th i ô A1 c a sheet1 và D10 c a sheet2. Ngư c l i thì không làm gì c .
Ngăn ch n ngư i s d ng th c hi n m t s hành ng nào ó nh t nh
M c dù Excel có h tr vi c b o v cho b ng tính (Protect Sheet, Protect Workbook), nhưng công c thô sơ
này không bao g m vi c ch cho phép ngư i s d ng m t s c quy n h n ch - tr khi b n làm theo nh ng
chiêu sau ây.
B n có th qu n lý vi c tương tác v i các b ng tính c a b n b ng cách giám sát và áp ng các s ki n. Các s
ki n (event), là nh ng hành ng x y ra khi b n làm vi c v i các b ng tính ho c các Sheet. Nh ng s ki n này
thư ng bao g m vi c m (open) m t b ng tính, lưu (save) nó, và óng (close) nó. B n có th b o Excel ch y
nh ng mã Visual Basic (macro) m t cách t ng khi x y ra b t kỳ m t trong nh ng s ki n như th .
Tuy nhiên, b n nên bi t r ng, ngư i s d ng có th vư t qua t t c nh ng mã b o v b i Visual Basic b ng cách
vô hi u hóa vi c th c thi các macro: Nh n nút Office ➝ Excel Opions ➝ Trust Center ➝ Trust Center
Setting ➝ Macro Settings [E2003: Tools | Macro | Security]. N u t m c an toàn là Disable all macros
with notification [E2003: m c Medium], m i khi m m t b ng tính có ch a macro, Excel s xu t hi n m t h p
thông báo và cho phép ngư i s d ng có cơ h i t t các macro. N u t m c an toàn là Disable all macros
without notification [E2003: m c High], Excel s ngăn không cho ch y t t c các macro có trong b ng tính.
Nói cách khác, khi c n ph i dùng các macro có trong b ng tính, ngư i s d ng s ch n m t m c an toàn thích
h p cho phép s d ng các macro.
Ngăn ch n vi c lưu l i b ng tính v i m t tên khác
B n có th thi t l p thu c tính "Read only" cho b t kỳ m t b ng tính nào, b ng cách nh n Office ➝ Save, nh n
nút Tools, ch n General Options [E2003: File | Save As | Tools | General Options] và kích ho t h p ki m
Read only recommended. Vi c này ngăn ch n ngư i s d ng lưu l i nh ng thay i trên b ng tính, tr phi h
lưu l i b ng tính v i m t tên khác ho c lưu vào m t nơi khác.
Tuy nhiên, có th i u b n mu n là không cho lưu l i b ng tính c a b n v i tên khác, cũng không cho lưu
vào m t nơi khác. Nói cách khác, b n mu n ngư i khác ch có th lưu l i b ng tính này v i chính tên g c c a
nó, ch không ư c sao chép nó. i u này c bi t h u d ng khi có nhi u ngư i cùng s d ng chung m t b ng
tính, và b n không mu n trong c ng c a mình y d y nh ng b n sao c a b ng tính này, cho dù là v i m t
tên khác, hay m t thư m c khác.
S ki n Before Save mà tôi s p nói n ã có t th i Excel 97. úng như tên g i c a nó, s ki n này ch xu t
hi n ngay trư c khi b ng tính ư c lưu, cho phép b n can thi p k p th i vi c lưu l i b ng tính, ưa ra m t c nh
báo, và không cho Excel lưu b ng tính.
Trư c khi t th c hi n i u này vào b ng tính, hãy ch n ch n r ng b n ã lưu l i b ng tính c a b n. B i vì vi c
ưa o n code sau ây vào môt b ng tính chưa ư c lưu, có th s gây cho b n nhi u r c r i.
ưa o n code sau vào b ng tính, b n hãy ch n Develope ➝ Visual Basic (ho c nh n Alt+F11), và nh p
úp chu t vào m c ThisWorkbook trong khung
Project Explorer. N u trên Ribbon c a b n không có m c Develope, b n hãy vào trong Excel Options ➝
Popular, ánh d u vào tùy ch n Show Develope tab in the Ribbon, r i nh n OK. [E2003, nh n ph i chu t
vào bi u tư ng Excel ngay bên trái menu File trên thanh menu, và ch n m c View Code, như minh h a
hình bên dư i]:
S d ng Quick access menu (trong Excel 2003) nh p code áp d ng cho workbook
B n hãy nh p o n code sau ây vào c a s VBE. Sau khi nh p xong, nh n Alt+Q tr v Excel, r i lưu l i
b ng tính:
PHP Code:
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim lReply As Long
If SaveAsUI = True Then
lReply = MsgBox("Sorry, you are not allowed to save this workbook as another name." _
& "Do you wish to save this workbook?", vbQuestion + vbOKCancel)
Cancel = (lReply = vbCancel)
If Cancel = False Then Me.Save
Cancel = True
End If
End Sub
Th m t tí. B n nh n Ctrl+S (ho c g i l nh Save) xem. B ng tính c a b n lưu bình thư ng. Bây gi b n nh n
F12 (ho c g i l nh Save as), b n s g p m t c nh báo, nói r ng b n không th lưu l i b ng tính này dư i b t kỳ
m t tên nào khác, tr phi b n vô hi u hóa các macro.
Nói thêm, khi b n lưu m t b ng tính có ch a macro ho c code trong Excel 2007, b n s ư c nh c nh r ng
b n ph i lưu file d ng cho phép macro ho t ng (macro-enable workbook), có ph n m r ng là *.xlsm, ch
không th lưu d ng bình thư ng (*.xlsx).
Ngăn ch n vi c in m t b ng tính
ôi khi b n ph i r i bàn làm vi c i âu ó mà quên t t máy (chuy n này là chuy n thư ng), cho dù b n ã làm
công vi c ngăn ch n vi c có ai ó chép b ng tính c a b n ra ngoài, như ã nói trên, có th b n còn lo xa hơn,
mu n r ng b ng tính này cũng s không b in ra khi b n v ng m t. N u th t s b n mu n như v y, b n hãy dùng
s ki n Before Print. Hãy nh p o n code sau trong c a s VBE:
PHP Code:
Private Sub workbook_BeforePrint(Cancel As Boolean)
Cancel = True
MsgBox "Sorry, you cannot Print from this workbook", vbInformation
End Sub
Nh n Ctrl+Q quay v Excel và lưu l i. T bây gi , n u có ai có mu n ra l nh in b ng tính này, s không có
gì x y ra. Dòng l nh MsgBox o n code trên ch là m t tùy ch n, nhưng b n nên s d ng nó, vì ít nh t thì nó
cũng l i m t thông tin gì ó, ngư i khác s không tư ng l m r ng máy in c a h b hư, ho c là chương
trình Excel có l i!
N u b n ch mu n ngăn ch n in m t ph n nào ó trong b ng tính, ví d không cho in Sheet1 và Sheet2, b n s
d ng o n code sau:
PHP Code:
Private Sub workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Sheet1", "Sheet2"
Cancel = True
MsgBox "Sorry, you cannot print this sheet from this workbook", _
vbInformation
End Select
End Sub
Dĩ nhiên b n có th thêm vào b t kỳ Sheet nào có trong b ng tính c a b n. Ch vi c nh p tên c a nó vào trong
hàng có l nh Case, và tách bi t Sheet này v i Sheet khác b ng d u ph y, và nh nh p tên Sheet trong m t c p
d u nháy kép. Trong trư ng h p b n ch mu n ngăn ch n không cho in m t Sheet mà thôi, b n ch c n nh p tên
c a Sheet ó (trong c p nháy kép) sau ch Case, và không c n gõ d u ph y.
Ngăn ch n vi c chèn thêm Sheet vào m t b ng tính
Excel có ch c năng Protect Workbook, không cho phép thay i c u trúc c a b ng tính như thêm, xóa, di
chuy n, hay i tên các Sheet. Tuy nhiên, có th b n ch mu n ngăn ch n vi c thêm Sheet thôi, còn nh ng vi c
khác thì v n cho phép. o n code sau ây giúp b n làm vi c ó:
PHP Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
MsgBox "Sorry, you cannot add any more sheets to this workbook", _
vbInformation
Sh.Delete
Application.DisplayAlerts = True
End Sub
Khi có ai ó chèn thêm m t Sheet m i vào trong b ng tính, trư c tiên Excel s xu t hi n h p c nh cáo: "Xin l i,
b n không th thêm b t kỳ Sheet nào vào trong b ng tính này", r i ngay l p t c, Excel s xóa cái Sheet m i
thêm vào khi nút OK trong h p c nh báo ư c nh n. Công d ng c a dòng l nh Application.DisplayAlerts =
False là không hi n th h p c nh báo xác nh n vi c xóa m t Sheet nào ó trong Excel.
M t cách khác ngăn ch n vi c chèn thêm Sheet vào b ng tính là b n ch n Review trên thanh Ribbon, ch n
l nh Protect Workbook trong nhóm Changes, r i ch n l nh Protect Structure and Windows [E2003: Tools |
Protection | Protect Workbook... ánh d u ki m vào tùy ch n Structure] và nh n OK (có th t password n u
thích). Tuy nhiên, như ã nói u bài, vi c này s ngăn ch n h t m i thao tác v i các Sheet trong b ng tính.
Ngăn ch n các nh c nh không c n thi t
Exel luôn luôn c nh báo ho c nh c nh b n xác nh n các hành ng và thao tác c a b n. Bài này s hư ng d n b n
cách lo i b các thông báo ho c nh c nh .
Các ki u c nh báo mà tôi c p ây chính là các câu h i mà Excel h i b n có cho macro ho t ng hay không ho c là
các thông báo v các hành ng xóa m t trang b ng tính. Sau ây là m t s lo i c nh báo c a Excel:
Thông báo kích ho t Macro trong khi trong workbook không có macro
L i này phát sinh do b n ã t ng th c hi n ghi macro trong workbook, và m c dù b n ã xóa t t c các mã l nh macro
nhưng trong các l n m workbook sau ó Excel v n c nh báo b n là trong workbook có ch a macro.
• Xóa macro: vào ngăn Developer | ch n Macro | ch n các macro và nh n Delete xóa [E2003: Tools |
Macro | Macros].
• B n ch nh n ư c thông báo kích ho t macro khi thi t l p m c an toàn là “Disable all macro with notification”
[E2003: m c Medium].
• N u m c an toàn ư c thi t l p là “Enable all macors” [E2003: m c Low] thì các macro s t ng kích ho t mà
không có ti ng kêu c nh báo.
• N u m c an toàn là “ Disable all macros without notification” [E2003: m c High] thì các macro t ng b khóa l i
không ư c phép th c thi.
Khi b n ghi m t macro, Excel chèn m t module vào ch a các l nh c a b n và các hàm. Vào lúc m m t b ng tính,
Excel ki m tra xem b ng tính có ch a module nào không và chúng r ng hay ang ch a các mã l nh. Vi c xóa các macro
c a b ng tính s xóa t t c các mã l nh ch a bên trong module mà không xóa các module – gi ng như vi c u ng c n lon
s a và b l i v h p s a vào l i t l nh. Do v y, b n c n ph i xóa i các module này theo hư ng d n sau
Ch n ngăn Developer | ch n nút Visual Basic t i nhóm Code ho c nh n t h p phím ALT+F11 [E2003: Tools | Macro
| Visual Basic Editor (VBE) và ch n View | Project Explorer].
Các nút l nh trên ngăn Developer
N u không th y c a s Project thì b n vào View và ch n Project Explorer ho c nh n t h p phím Ctrl+R
C a s Project Explorer
Nh p chu t lên các ký hi u (+) xem các thánh ph n b n c a các nhánh con trong c a s Project và hãy tìm n các
module. B n nh p ph i chu t lên t ng module và ch n l nh Remove Module t th c ơn ng c nh. N u ư c h i có
xu t module ra thành t p tin thì hãy ch n No. Nh n t h p ALT+Q óng c a s VBE.
Thông báo nh c nh lưu tr trong khi không có s thay i nào
B n có th nh n th y r ng ôi khi b n ch m m t b ng tính và xem m t s thông tin trong ó mà Excel cũng nh c nh
b n lưu l i các thay i trong Personal Macro Workbook m c dù b n không h thay i gì trong ó. Có th b n ã bi t
ho c chưa, b n ã có s d ng m t hàm volatile (là hàm trong ó có s d ng phương th c volatile) trong Personal Macro
Workbook c a mình.
M t personal macro workbook là m t b ng tính n ư c t o l n u tiên b n ghi macro (Tools | Macro | Record
NewMacro) v i tùy ch n “Personal Macro Workbook” t i “Store Macro in”. Macro này s ư c m m i khi b n s d ng
Excel. M t hàm volatile s làm b ng tính t ng tính toán l i m i khi b n th c hi n m t thao tác nào ó trong Excel, bao
g m c vi c m và óng b ng tính ho c ng d ng Excel. Hai trong s các hàm volatile ph bi n là hàm Today() và
Now().
H p tho i Record Macro
Vì th , m c dù b n ch c ch n là mình không có thay i gì trong b ng tính nhưng các hàm volatile này v n ang ho t
ng âm th m. i u này ư c tính như là m t s thay i và Excel s c nh báo vi c lưu tr m c dù không t n t i b t kỳ
s thay i nào trong b ng tính.
N u b n mu n Excel d ng vi c thông báo lưu tr các thay i mà b n không h th c hi n, b n có m t vài cách th c
hi n. Cách d th y nh t là ta không lưu các hàm volatile trong Personal Macro Workbook và nên xóa b t t c các hàm
volatile ang có trong ó. Ho c, n u b n c n các hàm volatile nhưng không mu n Excel lưu l i các thay i không nhìn
th y này b n có th thêm o n code sau vào Workbook module c a Personal Macro Workbook ánh l a nó là b ng
tính ã ư c lưu r i.
PHP Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True
End Sub
m Personal Macro Workbook b n vào View | Unhide trong nhóm Window [E2003: Window | Unhide], ch n
Personal.xls t h p tho i Unhide và nh p nút OK. Nh n t h p phím ALT+F11 vào c a s VBE, sau ó nh p ph i
chu t lên ThisWorkbook t Personal.xls trong c a s Project r i ch n View Code và nh p o n mã trên vào. Sau khi
nh p xong, b n nh n t h p phím ALT+Q óng c a s VBE l i.
T t nhiên, n u b n có s d ng hàm volatile tính toán l i b ng tính và b n mu n lưu các thay i này thì b n dùng
o n mã sau thay cho o n mã nêu trên.
PHP Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Save
End Sub
o n mã trên s lưu l i Personal Macro Workbook m t cách t ng m i khi nó ư c m .
D ng các c nh báo c a Excel v các macro ã ghi
M t trong s nhi u h n ch c a vi c ghi macro là không t thêm vào các l nh lo i b các thông báo khi th c thi. Ví d
như b n ghi m t macro xóa m t worksheet và khi th c thi macro này b n s nh n ư c thông báo xác nh n vi c xóa
worksheet. Mu n t t c nh báo này, b n làm như hư ng d n sau:
Ch n ngăn Developer | Macros t i nhóm Code ho c nh n ALT+F8 [E2003: Tools | Macro | Macros] g i h p tho i
Macro. T i Macro in ch n “All Open Workbooks”, ch n tên macro mà b n v a ghi và nh n nút Edit. t con tr lên trư c
dòng l nh u tiên c a th t c và nh p vào dòng l nh sau:
Application.DisplayAlerts = False
T i sau dòng l nh cu i cùng, b n thêm vào:
Application.DisplayAlerts = True
Macro c a b n sau khi thêm 2 dòng l nh trên s gi ng như sau:
PHP Code:
Sub MyMacro( )
'
' MyMacro Macro
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Lưu ý r ng, b n ã b t ch c năng c nh báo c a Excel l i t i dòng l nh cu i cùng c a macro. N u b dòng l nh này, b n
s không bao gi nh n ư c các c nh báo n a và i u này có th gây nguy h i vì có th b n vô tình th c hi n m t thao
tác nh m l n nghiêm tr ng nào ó mà không h nh n ư c c nh báo xác nh n hành ng.
n sheet sao cho ngư i dùng không th dùng l nh unhide hi n ra
ôi khi b n có nh ng thông tin trên 1 sheet nào ó và b n không mu n ngư i dùng c ư c. B n mu n có 1
khu v c (có th là 1 sheet) ghi chép nh ng d li u, công th c, nh ng chi ti t v n v t và không mu n cho ai nhìn
th y.
Thí d như 1 sheet ch a nh ng vùng làm d li u cho Data Validation, Combobox, nh ng tên bi n và giá tr
bi n dùng làm const trong VBA, nh ng thông tin nh y c m và nh ng th khác. M c dù b n có th d u sheet ó
b ng cách ch n View ➝Hide trong m c ch n Window ( i v i Excel 2003 là Format ➝Sheet ➝Hide), nhưng
s t t hơn n u b n làm cách khác ngư i dùng không th ch n View ➝ Unhide trong m c ch n Window ( i
v i Excel 2003 là Format ➝Sheet ➝ Unhide).
B n cũng có th dùng ch c năng khoá b ng tính, nhưng nó v n ư c nhìn th y. Hơn n a b n không
th khoá nh ng ô ch a d li u k t n i v i nh ng control t o b i thanh công c Form.
Thay vì v y, b n hãy thi t l p tr ng thái cho sheet d ng xlVeryHidden. Vào Developer ➝Visual Basic
ho c nh n Alt-F11 vào trang so n th o VBE ( i v i Excel 2003 thì vào menu Tools ➝Macro
➝Visual Basic Editor và nhìn bên trái trong khung Project Explorer, n u không th y thì ch n View -
Project Explorer. Tìm tên file và b m vào d u c ng hi n ra các tên sheet. Ch n tên sgeet nào b n
mu n d u, m khung Property b ng cách vào menu View – Property Window (ho c nh n F4). Ch n
tab Alphabetic, tìm dòng Visible và ch n 2- xlsSheetVeryHidden. Nh n Alt-Q tr v trang tính
Excel, lưu s thay i này. Sheet c a b n s ch ng bao gi có th th y ư c b ng cách thông
thư ng trên menu View – Unhide hay Format – Sgeet – Unhide.
th y tr l i, b n ph i vào ch cũ, ch n l i -1 – xlSheetVisible
T thi t k m t b ng tính m u (template)
N u như b n thư ng xuyên ph i th c hi n cùng m t ki u trình bày cho b ng tính c a mình, b n có th t
thi t k ra m t b ng tính m u cho riêng b n, là m t b ng tính ã có s n tiêu , m t s c t, m t s hàng nào
ó, th m chí là c Name và công th c; ng th i còn có th t o ra m t h p tho i riêng vào trong Thư vi n
các Templates c a Excel.
Không bi t là, có khi nào b n s d ng các Template không? Nghĩa là thay vì nh n Ctrl+N t o m t b ng tính
m i, thì b n nh n vào nút Office, ch n l nh New [E2003: File | New], và ch n ra m t ki u b ng tính ã ư c
thi t k s n trong thư vi n các Template, sau ó s a l i b ng tính này thành cái c a mình?
Ch n m t b ng tính ã ư c thi t k s n trong thư vi n Templates c a Excel
N u b n ã t ng th y, ã t ng s d ng nh ng b ng tính ã ươc thi t k s n này, t b n s th y s h u d ng
c a nó, nh nó mà chúng ta ti t ki m ư c bao nhiêu là th i gian cho vi c thi t k và trình bày.
Và, trong công vi c, n u như b n c ph i thư ng xuyên thi t k nh ng b ng tính có c u trúc gi ng nhau, tôi
nghĩ r ng vi c b n thư ng làm là m m t b ng tính ã có, xóa i ph n n i dung và lưu l i v i tên khác, ph i
không? Nhưng cách làm này, ôi khi do sơ ý, b n s xóa luôn c nh ng công th c mà b n ã m t hàng gi
nghĩ ra, r i ph i m t th i gian cho nh ng thao tác xóa... V y, có bao gi b n nghĩ n chuy n s làm m t cái
gi ng như nh ng Template có s n c a Excel không? m i khi c n lo i m t b ng tính nào ó (m t b ng
lương, m t b ng ch m công, m t b n báo giá, v.v...) thì b n ch vi c vào trong Thư vi n Templates, th m chí là
vào trong "Thư vi n riêng" c a b n, l y m t cái m u ra r i ch vi c nh p s li u vào? Ti t ki m ư c bao nhiêu
là th i gian. Chiêu th 6 này s giúp b n th c hi n i u tôi v a nói.
T o m t b ng tính m u
Nh ng Template cho phép b n có s n m t "d án" (project), có nghĩa là b n s có s n môt b ng tính, bao g m
ph n tiêu c a b ng tính, m t s hàng và c t v i các tiêu c a nó, các công th c, và c các Name (n u có)..
Ví d , ây là Template BillingStatement1 có s n trong Excel 2007:
Template BillingStatement1 có s n trong Excel 2007
B n cũng có th t o ra m t cái gi ng v y, sau ó lưu l i thành m t Template. Vi c này không có gì khó. B n
m m t b ng tính m i, t o ra m t cái sư n: tô màu, nh d ng, t Name, thi t k công th c, v.v... như bình
thư ng b n v n làm, nhưng khoan nh p d li u vào. B n hãy xóa h t các Sheet không c n thi t, ch gi l i
nh ng Sheet ã ư c thi t k thôi. Ho c b n có th m m t b ng tính ã có s n, xóa h t nh ng d li u thô, ch
gi l i ph n trình bày. Sau ó, b n nh n F12 (Save as...) r i ch n Excel Template:
Ch n lo i file là Excel Template trong c a s Save
B n hãy t cho nó m t cái tên d nh , r i nh n Save. Theo m c nh thì Excel s lưu b ng tính m u này vào
Thư m c ch a các Template ã ư c t o ra khi b n cài t Excel 2007:
Excel s t ng ch n thư m c lưu các Template
M i khi c n s d ng m t b ng tính có c u trúc y h t b ng tính b n v a lưu v i d ng Template như trên, b n
nh n nút Office ➝ New [E2003: File | New], r i ch n ti p My Templates... c a s New Workbook:
Ch n My Template m các b ng tính m u ã lưu
Các b ng tính m u mà b n ã t o ra và lưu l i như tôi ã trình bày trên, s hi n ra. B n ch vi c ch n m u b n
c n, r i nh n OK.
Excel s t ng ch n thư m c lưu các Template
T o m t tab riêng trong c a s My Templates
Như b n ã th y hình ngay phía trên ây, khi b n nh n My Templates trong c a s New Workbook, m t
c a s New s m ra. ý m t tí, b n s th y c a s này có d ng nh ng cái tab. Nhưng hi n gi nó ch nó m i
m t tab My Templates thôi. Gi s b n ã t o ra r t nhi u b ng tính m u, thay vì "nhét" t t c vào m t ch , b n
có mu n t o thêm nh ng tab riêng cho m i lo i m u không? Ví d , tab "Báo cáo thu ", tab "Báo giá", v.v... hay
i lo i như th ?
Khi b n nh n F12 lưu l i v i d ng Template như tôi ã trình bày ph n trên, thì thay vì Excel ch n thư
m c lưu t ng, b n hãy nh n nút Create New Folder:
Nh n nút Create New Folder t o thêm tab cho các Template
M t h p tho i s m ra, và b n nh p m t cái tên cho nhóm bi u m u mà b n mu n. ây, tôi t o thêm m t
nhóm là "Báo cáo thu " lưu nh ng b ng tính s dùng in ra các báo cáo n p cho cơ quan thu , nh n OK,
t tên cho Template, và nh n Save. V y là xong r i ó. Tôi m th ra cho b n xem nhé:
B n th y không, trong c a s New này, ã có thêm m t tab m i là "Báo cáo thu ". Hay ch nh !
M t i u lưu ý, ch c là không th a. T t c nh ng Template và nh ng thư m c mà b n ã t t o ra trong bài
này, u n m ây:
C:Documents and SettingsOwnerApplication DataMicrosoftTemplate
V i Owner là tên c a Acount mà b n ã t o ra khi s d ng Windows. Tôi ã th thay i nơi lưu các Template
này, nhưng không ư c. Khi ch n My Template trong c a s New Workbook, Excel ch li t kê nh ng
Template nào n m trong cái ư ng d n trên ây mà thôi. Do ó, khi cài t l i Windows, có th b n s m t
h t t t c nh ng gì n m trong thư m c C:Documents and Settings... V y, i u lưu ý ây là, b n nên t o ra
nh ng b n sao d phòng cho các Template này, c t gi c n th n. Sau này, khi có ph i cài t l i Windows, b n
ch vi c chép các b n sao vào úng ch c a nó (chính là cái ư ng d n trên ây), là có th s d ng ti p.
T o ch m c cho các Sheet trong Workbook
N u b n ã t n quá nhi u th i gian trong m t workbook (b ng tính) v i r t nhi u worksheet (trang tính), b n s
c m thông ư c s khó khăn trong vi c tìm ki m m t trang tính nào ó. Khi ó, có l ta nên l p m t ch m c
các trang tính ang có thu n ti n cho vi c i u hư ng trong b ng tính.
B ng cách s d ng m t ch m c các trang tính s cho phép b n nhanh chóng và d dàng i u hư ng trong b ng
tính, ch b ng m t cú nh p chu t s ưa b n n chính xác nơi b n mu n n mà không lo b nh m l n. B n có
th t o m t ch m c trong m t vài cách: b ng tay, t ng t o ra b i mã VBA, ho c là s d ng trình ơn tùy
ch n theo ng c nh (th m chí có th dùng các hàm Macro4 – không trình bày ây).
T o ch m c th công
Cách này r t d làm, b n ch c n chèn m i m t worksheet và ăt cho nó m t cái tên, ví d như tên là Index. Sau
ó, b n nh n vào tên c a các worksheet có trong workbook và t o các siêu liên k t (hyperlink) n các
worksheet tương ng v i tên mà b n nh p.
t o hyperlink b n ch n tên sheet, sau ó vào Insert | ch n Hyperlink t i nhóm Links [E2003: Insert |
Hyperlinks] ho c nh n phím t t là Ctrl+K m h p tho i Insert Hyperlink.
H p tho i Insert Hyperlink
Ch n Place in This Document và ch n tên Sheet mu n k t n i t i. Nh n nút OK hoàn t t.
Phương pháp này phù h p khi b ng tính không có quá nhi u worksheet và tên worksheet không có s thay i
thư ng xuyên, n u không s gây ra nhi u khó khăn cho công tác b o trì trang ch m c.
T o ch m c t ng b ng cách s d ng VBA
M t cách thay th khác là s d ng VBA t ng t o ra các ch m c. o n mã sau ây s t ng t o ra m t
b ng ch m c liên k t n t t c các worksheet mà b n có trong workbook. B ng ch m c này s ư c t o l i
m i khi worksheet lưu ch m c ư c ch n.
o n mã này ph i ư c t trong private module c a Sheet ch a ch . Chèn m t worksheet m i vào workbook
và t tên cho nó là Index ch ng h n. Nh p chu t ph i vào tên worksheet v a t o và ch n ViewCode t trình
ơn ng c nh ho c nh n t h p phím Alt+F11.
Nh p o n mã VBA sau vào c a s Code:
PHP Code:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim lCount As Long
lCount = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
End With
For Each wSheet In Worksheets
If wSheet.Name <> Me.Name Then
lCount = lCount + 1
With wSheet
.Range("A1").Name = "Start" & wSheet.Index
.Hyperlinks.Add Anchor:=.Range("A1"), Address:="", SubAddress:= _
"Index", TextToDisplay:="Back to Index"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(lCount, 1), Address:="", SubAddress:= _
"Start" & wSheet.Index, TextToDisplay:=wSheet.Name
End If
Next wSheet
End Sub
Nh n t h p phím Alt+Q thoát VBE và tr v c a s b ng tính, sau ó lưu b ng tính l i. ch y o n mã
v a t o, b n dùng chu t ch n sang worksheet khác trong workbook và sau ó ch n l i worksheet Index kích
ho t s ki n Worksheet_Activate.
Lưu ý r ng, o n mã s các t tên (Name) cho các ô A1 m i worksheet kèm theo s ch m c c a worksheet
trong b ng tính (worksheet u tiên có ch m c là 1, k ó là 2, 3…. n). i u này b o m r ng ô A1 trên m i
trang tính có m t tên khác nhau. N u ô A1 trên worksheet c a b n ã ư c t tên, b n nên cân nh c n vi c
thay i ô A1 trong o n mã sang m t a ch khác phù h p hơn.
Thêm thu c tính cho workbook
Lưu ý, n u b n có thi t l p Hyperlink base (siêu liên k t cơ s ) trong workbook thì các hyperlink ư c t o ra t
o n mã trên s không th ho t ng ư c, do chúng ã liên k t n các Name trong workbook hi n hành. Khi
thu c tính hyperlink base ư c thi t l p thì các siêu liên k t s tr n hyperlink base k t h p v i các Name.
Thêm thu c tính Hyperlink base: Vào Office | Prepare | Properties | Document Properties | ch n Advanced
Properties [E2003: File | Properties | Summary] và nh p vào hyperlink base.
Siêu liên k t trư c và sau khi thêm Hyperlink base
Thêm l nh g i ch m c vào trình ơn ng c nh
Cách th ba s hư ng d n b n thêm m t l nh vào trình ơn ng c nh g i danh sách các worksheet trong
workbook và b n có th ch n l nh này b ng cách kích ph i chu t vào vùng b ng tính b t kỳ. o n mã sau s
g i thanh l nh Tabs c a workbook như hình sau:
Thêm l nh “Sheet Index” vào trình ơn ng c nh
Nh n Alt+F11 m c a s VBE, sau ó nh p o n mã sau vào c a s Code c a
ThisWorkbook:
PHP Code:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Can
cel As Boolean)
Dim cCont As CommandBarButton
On Error Resume Next
Application.CommandBars("Cell").Controls("Sheet Index").Delete
On Error GoTo 0
Set cCont = Application.CommandBars("Cell").Controls.Add _
(Type:=msoControlButton, Temporary:=True)
With cCont
.Caption = "Sheet Index"
.OnAction = "IndexCode"
End With
End Sub
Ti p theo, b n vào Insert | Module và nh p vào o n mã sau:
PHP Code:
Sub IndexCode()
Application.CommandBars("workbook Tabs").ShowPopup
End Sub
o n mã trên s th c thi m i khi b n ch n l nh “Sheet Index” t trình ơn ng c nh và b n ph i t nó trong
Module thì Excel m i có th th y ư c th t c này.
Nh n Alt+Q óng c a s VBE tr v b nh tính Excel. K t lúc này, b n nh p ph i chu t t i b t kỳ ô nào
trong b t kỳ worksheet nào thì trong trình ơn ng c nh s có thêm l nh “Sheet Index” giúp b n i u hư ng n
b t c worksheet nào trong workbook m t cách d dàng.
Gi i h n vùng cu n c a b ng tính
N u b n không mu n thanh cu n kéo b ng tính lên xu ng ho c qua ph i nhi u, ho c b n có d li u 1 vùng
nào ó mà không mu ncho ngu i dùng xem, b n có th gi i h n vùng nhìn ư c c a b ng tính trong ph m vi
b n cho phép.
Các b ng tính t o b i Excel 2007 có s c t t i a 16.384, Excel trư c ó là 256 (t A n IV), và có s dòng t i
a là 1.048.576 (trư c ó là 65.536). Nhưng thư ng thì b n hi m khi s d ng h t. B n có th gi i h n ch cho
ngư i dùng xem trong 1 ph m vi nào ó, còn d li u nh y c m, b n ngoài vùng ó. Ngoài ra nó còn h n ch
khi ai ó vô tình kéo thanh cu n xu ng dòng 500.000 và n lư t ngư i khác la làng r ng kéo mãi ch ng th y
cái gì mà xem.
B n có th dùng cách ơn gi n là d u (Hide) nh ng dòng và c t mu n d u ho c b ng cách nh nghĩa 1 vùng
cho phép xem ho c ch kích ho t vùng có d li u.
1. D u dòng và c t:
Cách d nh t là d u nh ng dòng và c t không dùng n:
Trên sheet hi n hành, xác nh dòng cu i có d li u, nh n ch n dòng dư i nó, nh n thêm cùng lúc Ctrl + Shift +
mũi tên xu ng ch n n cu i dòng cu i cùng (1.048.576). Sau ó trong tab Home, ch n Format Hide &
Unhide – Hide Rows trong Excel 2007 ho c Format - Row - Hide trong 2003 tr v trư c, ho c click ph i chu t
và ch n Hide.
Làm tương t như v y d u nh ng c t không dùng n: tìm c t cu i, click ch n c t k bên, nh n Ctrl + Shift
+ mũi tên sang ph i, ch n hide columns.
K t qu như hình, vùng làm vi c b trùm 1 màu tăm t i chung quanh và ch ng ai có th kéo i âu ư c n a:
2. Xác nh 1 vùng s d ng b ng Property:
B ng cách s d ng Property c a sheet trong VBA, b n có th n nh vùng làm vi c trong ph m vi mong mu n.
Th c hi n như sau:
Nh n chu t ph i vào tên sheet trong tab Sheet Names, ch n View code, ho c nh n Alt + F11, ch n úng tên
sheet trong c a s Project Explorer, r i xu ng khung Property, tìm dòng ScrollArea gõ vào a ch vùng mong
mu n thí d $A$1:$H$50.
Quay tr l i b ng tính và th kéo thanh cu n, ta th y ch có th cu n xu ng n dòng 50 và cu n ngang n c t
H là t i a, không cu n ư c n a.
Tuy v y, Excel không lưu tính ch t này khi lưu b ng tính, nên l n sau m file lên ph i set Property l i. Do ó ta
ph i vi t 1 o n code th c hi n i u này m i khi kích ho t sheet. Vào vùng so n th o code c a úng sheet mình
mu n, ch n s ki n worksheet_activate:
PHP Code:
Private Sub Worksheet_Activate ( )
Me.ScrollArea = "A1:H50"
End Sub
Bây gi m i khi kích ho t b ng tính, VBA s n nh vùng gi i h n như mong mu n.
M c dù không có vùng bao quanh tăm t i như cách trên, nhưng b n không th nào cu n ra kh i vùng, b n c
ch n 1 ô n m ngoài vùng cho phép cũng không ư c, k c c t I, J, K dù b n có ngó th y cũng ch thèm
thôi.
Th m chí v i nh ng o n code VBA b n t o sau này, trong ó có câu l nh select 1 vùng n m ngoài vùng cho
phép, ho c ch n nguyên c t nguyên dòng, cũng không ch n ư c.
có th th c thi các o n code trên b n ph i cho vào code 2 dòng l nh:
u code thêm dòng: ActiveSheet.ScrollArea = ""
Cu i code thêm dòng: ActiveSheet.ScrollArea = "$A$1:$G$50"
Thí d :
PHP Code:
Sub MyMacro( )
ActiveSheet.ScrollArea = ""
Range("Z100").Select
Selection.Font.Bold = True
ActiveSheet.ScrollArea = "$A$1:$G$50"
Sheets("Daily Budget").Select
ActiveSheet.ScrollArea = ""
Range ("T500").Select
Selection.Font.Bold = False
ActiveSheet.ScrollArea = "$A$1:$H$25"
End Sub
o n code trên ch n ô Z100 trong sheet hi n hành và nh d ng in m. Sau ó ch n ô
T500 trong sheet khác, nh d ng in thư ng (không m). Trư c khi th c hi n ch n và
nh d ng sheet nào, ph i set vùng cu n sheet ó là “”. Sau khi nh d ng,set tr vùng
gi i h n cu n theo mong mu n.
3. Ch kích ho t vùng d li u hi n hành:
Phương pháp này linh ho t hơn, t ng gi i h n vùng cu n b ng tính v a b ng vùng d li u c a b ng tính mà
b n t code sau:
PHP Code:
Private Sub Worksheet_Activate( )
Me.ScrollArea =Me.UsedRange. Address
End Sub
o n code trên s ch y m i khi b n kích ho t b ng tính mà b n t code. Dù v y cũng
có h n ch là b n không th thêm d li u vào dòng m i ho c c t m i. B n có th m
r ng vùng gi i h n ra thêm 5 dòng và 2 c t b ng o n code sau:
PHP Code:
Private Sub Worksheet_Activate()
With Me.UsedRange
Me.ScrollArea = .Resize(.Rows.Count + 5, .Columns.Count + 2).Address
End With
End Sub
Còn n u b n mu n hơn n a, nh p li u thêm 1 cách tho i mái, thì dùng 1 o n code
nh m reset vùng cu n b ng nguyên sheet:
PHP Code:
Sub ResetScrollArea( )
ActiveSheet.ScrollArea = ""
End Sub
B n có th gán short key (phím t t) cho o n code này b ng cách nh n Alt F8, ch n
macro ResetScrollArea, nh n nút option, và gán 1 phím t t thí d Ctrl + W.
Sau này m i khi b n mu n nh p li u, nh n Ctrl + W trư c khi nh p li u. Khi nh p li u xong, ch c n b n kích
ho t 1 sheet khác xong quay l i sheet này, vùng cu n l i b gi i h n b i o ncode trên (Worksheet_Activate())
Khóa và b o v nh ng ô có ch a công th c
Chiêu này giúp b n cho phép ngư i khác thay i các ô có ch a d li u, nhưng c m h thay i các ô ch a
công th c. B n cũng có th b o v các ô có ch a công th c mà không c n ph i b o v toàn b trang tính
c a b n.
Khi t o m t b ng tính, thư ng chúng ta s ph i dùng n m t s công th c, và khi chia s b ng tính cho m i
ngư i, có th b n mu n r ng, không ai có th can thi p (xóa, s a...) nh ng vào nh ng ô có ch a công th c.
Cách d nh t là cũng ph bi n nh t là Protect (b o v ) b ng tính. Tuy nhiên, Protect b ng tính không ch ngăn
không cho can thi p vào các ô ch a công th c, mà nó không cho can thi p vào t t c , nghĩa là không ai có th
làm gì b ng tính c a b n. ôi khi, b n l i không mu n như v y, b n ch mu n b o v các ô ch a công th c thôi,
còn nh ng ô ch a d li u thì không.
Có ba gi i pháp th c hi n i u này: Khóa nh ng ô ch a công th c, s d ng ch c năng Data-validation cho
các ô ch a công th c, và t ng b t t t ch c năng b o v .
Khóa các ô ch a công th c
Theo m c nh, t t c các ô trong b ng tính u ư c khóa (locked), tuy nhiên, nó ch ng có tác d ng gì tr phi
b n áp d ng l nh Protect b ng tính. ây là cách d nh t áp d ng l nh Protect cho b ng tính, nhưng ch
nh ng ô ch a công th c thì m i b khóa, và ư c b o v :
Ch n toàn b b ng tính, b ng cách nh n Ctrl+A, ho c nh n vào cái ô vuông n m giao i m c a c t A và hàng
1. R i nh n nút ph i chu t và ch n Format Cells, r i trong tab Protection, b ánh d u tùy ch n Locked, r i
nh n OK:
M khóa (Unlock) toàn b b ng tính b ng cách b tùy ch n Locked
Sau ó, b n ch n i m t ô nào ó, ch n Home ➝ Find & Select ➝ Go To Special [E2003: Edit | Go To… |
Special]; ho c nh n Ctrl+G hay F5 r i nh n vào nút Special.... H p tho i sau ây s m ra:
Dùng h p tho i Go To Special ch n các ô có ch a công th c
Trong h p tho i ó, b n nh n vào tùy ch n Formulas, và n u c n thi t thì ch n ho c không ch n thêm 4 ô nh
dư i (li t kê các lo i công th c, m c nh thì c 4 ô này u ư c ch n), và nh n OK. Sau ó, b n m l i h p
tho i Format Cells ã nói trên, nhưng l n này thì b n ánh d u vào tùy ch n Locked, và n u b n thích n
luôn công th c (không cho th y) thì ánh d u vào tùy ch n Hidden, nh n OK.
Vi c cu i cùng là Protect b ng tính: Ch n Home trên Ribbon, nh n vào Format trong nhóm Cells, r i nh n vào
Protect Sheet...; ho c ch n Review trên Ribbon, r i nh n vào Protect Sheet [E2003: Tools | Protection |
Protect Worksheet]:
Ch n Protect Sheet t Home
Ch n Protect Sheet t Review
Trong h p tho i Protect Sheet, b ánh d u tùy ch n Select locked cells, ch cho phép Select unlocked cells
(ch n nh ng ô không khóa), và nh p vào m t password, n u c n thi t:
B tùy ch n Select locked cells trong h p tho i Protect Sheet
V y là xong. T bây gi , nh ng ô ch a công th c c a b n s ư c b o v , có th không xem th y ư c n u b n
ã ch n Hidden, b n không lo nh ng công th c này b can thi p n a.
S d ng Data-validation
S d ng Data-validation, ch là ơn gi n không cho ghi è vào nh ng ô có ch a công th c, nghĩa là không cho
s a công th c. Tuy nhiên, phương pháp này ch phòng ng a cho chính b n, nghĩa là tránh vi c táy máy s a l i
cái gì ó trong nh ng ô ch a công th c, ch th t ra, m c dù ã ư c "Validation", b n v n có th xóa công
th c, ho c dán vào nh ng ô ó b t kỳ d li u nào b n thích... Nói chung nó không b o v ư c gì nhi u. Nhưng
cũng xin nói sơ qua v phương pháp này:
th c hi n, b n hãy ch n nh ng ô ch a ô công th c b ng ch c năng Go To Specials mà tôi ã nói trên.
R i, v i nh ng ô ch a công th c ang ư c ch n, b n g i Data Validation t menu Data trên Ribbon [E2003:
Data | Validation]. Trong h p tho i này, ch n tab Settings, ch n Custom cho khung Allow, và nh p công th c
này: =" " vào khung Formula, r i nh n OK, như hình sau:
S d ng Data Validation b o v nh ng ô ch a công th c
K t ây, m i khi b n nh p b t kỳ th gì vào trong nh ng ô ch a công th c, ho c b n mu n s a l i công th c,
s có m t c nh báo xu t hi n, ngăn không cho b n nh p vào. Xin nh c l i, phương pháp này không c m vi c
xóa h n công th c, cũng như dán è th gì ó vào nh ng ô ch a công th c.
T ng b t t t ch c năng b o v
Phương pháp này, s t ng b t ch c năng b o v b ng tính (Protect) m i khi b n ch n m t ô ã ư c khóa
(locked), nhưng nó cũng s t ng t t ch c năng b o v khi b n ch n m t ô không b khóa.
b t u, b n hãy ch c ch n r ng nh ng ô b n mu n b o v (ô ch a công th c) ã ư c khóa, còn nh ng ô
không c n b o v thì không b khóa, như tôi ã trình bày phương pháp th nh t. Sau ó, b n nh n Alt+F11,
nh n vào Sheet mà b n mu n b o v các ô ã khóa trong ó, r i nh p vào trong khung so n th o o n code
sau ây:
PHP Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Locked = True Then
Me.Protect Password:="Secret"
Else
Me.Unprotect Password:="Secret"
End If
End Sub
N u không c n n password, b n không c n dùng o n Password:="Secret", ho c n u mu n Password là th
gì khác, b n s a l i ch Secret b ng cái b n mu n.
N u b n lo r ng ngư i ta có th vào trong khung so n th o VBA xem password, b n có th b o v các code
này (không cho xem) b ng cách ch n Tools ➝ VBAProject Properties, ch n tab Properties, ch n Lock
Project for Viewing, và nh p vào m t password.
Tuy nhiên, phương pháp này cũng không ho t ng hoàn h o, m c dù nó cũng giúp b n ư c ph n nào vi c b o
v các công th c. T khóa Target ư c s d ng trong o n code s ch tham chi u n ô ang "active" ngay
t i th i i m nó ư c ch n (xin nói thêm, cho dù b n ch n m t dãy, nhưng trong dãy ó, ch có m t ô "active"
mà thôi, là ô ang có màu khác v i nh ng ô còn l i). Vì lý do này, n u m t ngư i nào ó ch n m t dãy các ô
(v i ô "active" không b khóa), thì ngư i ó có th xóa toàn b dãy ô này, b i vì khi ó thì ch c năng Unprotect
ã ư c t ng b t!
S d ng nh d ng theo i u ki n tìm d li u trùng
nh d ng theo i u ki n c a Excel thư ng ư c s d ng xác nh giá tr trong ph m vi c th trên b ng
tính, nhưng chúng ta có th c i ti n nó nh n d ng s trùng l p d li u trong m t danh sách ho c m t b ng.
Ch c năng nh d ng theo i u ki n trong Excel 2007 ã ư c c i ti n, do v y bài hư ng d n này thích h p cho
các phiên b n t Excel 2003 v trư c.
M i ngư i thư ng xuyên ph i nh n di n s trùng l p d li u trong m t danh sách ho c m t b ng, và làm th
công công vi c này có th m t nhi u th i gian và d m c l i. làm cho công vi c này d dàng hơn, b n có th
ch bi n công c nh d ng theo i u c a Excel m t ít.
Ví d như, b n có m t b ng d li u là vùng $A$1:$H$100. B n ch n nó b ng cách ch n ô trên cùng – bên trái
c a b ng (A1) và kéo chu t n ô dư i cùng bên ph i (H100). i u này r t quan tr ng, vì ta mu n ô A1 ph i là
ô hi n hành (active) trong vùng l a ch n. Sau ó vào Format | ch n Conditional Formatting….
L nh nh d ng theo i u ki n trong Excel 2003
Trong h p tho i Conditional Formatting, b n ch n Formulas Is t i Condition 1 và nh p công th c sau vào
h p tr ng bên c nh:
=COUNTIF($A$1:$H$100,A1)>1
H p tho i Conditional Formatting
Nh n ch n nút Format | ch n màu và ki u ch t i ngăn Font và ch n màu n n t i ngăn Patterns. Nh n OK khi
hoàn t t vi c nh d ng. Nh n ti p OK áp d ng nh d ng cho vùng d li u ang ch n.
H p tho i Format Cells
Theo b ng s li u minh h a thì h u h t các ô u có d li u trùng tr hai ô H7 và H49.
Trong công th c nh d ng theo i u ki n này, ta s d ng tham chi u tương i cho a ch ô c n ki m tra trong
vùng a ch xác nh. B ng cách s d ng nh d ng theo i u ki n như th này, Excel s t ng nh n bi t a
ch ô làm i u ki n trong hàm COUNTIF. C th thì các công th c nh d ng theo i u ki n t i các ô như sau:
Ô A1 s có công th c là: =COUNTIF($A$1:$H$100,A1)>1
Ô A2 s có công th c là: =COUNTIF($A$1:$H$100,A2)>1
Ô A3 s có công th c là: =COUNTIF($A$1:$H$100,A3)>1
…
Ô B1 s có công th c là: =COUNTIF($A$1:$H$100,B1)>1
Ô B2 s có công th c là: =COUNTIF($A$1:$H$100,B2)>1
…
nh d ng theo i u ki n trong Excel 2007 ã có s n tính năng làm n i các giá tr trùng trong m t vùng d li u.
Các bư c th c hi n như sau:
Ch n vùng d li u | vào ngăn Home | ch n Conditional Formatting | ch n Highlight Cells Rules | ch n
Duplicate Values…
L nh Duplicate Values c a Conditional Formatting trong Excel 2007
Trong h p tho i Duplicate Values, b n ch n ki u Duplicate (ho c Unique: duy nh t) và ch n nh d ng t i
h p k bên sau ó nh n OK.
H p tho i Duplicate Values
Tìm d li u xu t hi n 2 ho c nhi u l n b ng công c Conditional Formating
Dù cho công c Conditional Formating ã c i ti n r t nhi u trong Excel 2007, giúp chúng ta tìm nh ng d li u
trùng (Duplicate), nhưng nó v n chưa cung c p nh ng tính năng tìm ra nh ng d li u xu t hi n 2 l n ho c nhi u
hơn.
N u b n mu n xác nh nh ng d li u 2 l n ho c nhi u hơn, b n có th dùng Conditional Formating v i s
lư ng nhi u các i u ki n, trong gi i h n cho phép c a b nh h th ng. (Nh r ng trong Excel 2003 tr v
trư c, ch ch p nh n có 3 i u ki n). Sau ó b n gán nh ng nh d ng màu s c cho m i i u ki n.
th c hi n, ch n ô A1 là ô trên cùng bên trái c a vùng d li u, b m shif và clickvào ô H100. C n nh c các
b n 1l n n a, là ph i làm úng trìnht cho ô ch n (activecell) là ô A1. Bây gi vào tab Home, Conditional
Formating, NewRule trong m c Style. Ch n [FONT=Birka]Use a Formula to determine which cells to format”
và click ch n “Format values where this formula is true.” i v i Excel 2003: Format, Conditional Formating,
ch n Formula Is). Trong ô tr ng gõ công th c:
=COUNTIF($A$1:$H$100,A1)>3
__________
Nh n nút Format, ch n màu n n và màu ch cho nh ng ô ch a d li u xu t hi n hơn 3 l n, và OK.
_____________
Nh n New Rule (trong Excel 2003 ch n vào i u ki n th 2), làm ti p 1 i u ki n, l n này công th c là:
=COUNTIF($A$1:$H$100,A1)=3.
Nh n New Rule (trong Excel 2003 ch n vào i u ki n th 3), làm ti p 1 i u ki n, l n này công th c là:
=COUNTIF($A$1:$H$100,A1)=2.
Nh m i l n ch n 1 màu khác nhau.
K t qu : b n có nh ng ô có màu khác nhau cho nh ng d li u xu t hi n 2 l n, 3 l n, và nhi u hơn.
C n nh c l i chuy n ch n úng vùng ch n sao cho ô A1 là ô hi n hành, Excel hi u úng i u ki n trong
công th c CountIf. Và: Excel 2003 gi i h n b i 3 i u ki n, trong khi ó Excel 2007 ch b gi i h n b i b nh
h th ng.
T o riêng m t thanh công c cho riêng m t b ng tính c th
B n ã t ng t o ra thanh công c riêng cho mình? B n có th y r ng, thanh công c này luôn luôn ư c n p vào
Excel, và luôn hi n th , v i b t kỳ b ng tính nào, v i b t kỳ ngư i s d ng nào? Có bao gi , b n mu n r ng,
thanh công c t t o này ch ư c hi n th v i m t b ng tính c th nào ó mà thôi không?
Ví d , b n t t o ra m t thanh công c có ch a nh ng nút dùng h tr vi c nh p công th c và x lý b ng
(nh ng d u =, +, -, *, /, nh ng nút dùng xóa hàng, xóa c t, v.v...), t m g i là thanh công c A, ph c v riêng
cho b ng tính B. Và b n mu n, làm th nào ch khi b n m b ng tính B, thì m i th y thanh công c A c a
b n, còn m b ng tính khác, thì ch th y nh ng thanh công c m c nh c a Excel? Th m chí trong cùng m t
c a s Excel, nhưng khi b n kích ho t b ng tính B, thì m i th y thanh công c A, còn khi nh n Ctrl+Tab
chuy n sang b ng tính khác, thì thanh công c A này s bi n m t?
Thi t nghĩ, ch c h n ã có lúc b n mu n i u tôi v a nói. Vì nó giúp cho thanh công c c a Excel luôn g n
gàng, ngăn n p (luôn là thanh công c m c nh c a Excel), n u không ph i là b n, mà là ngư i khác, thì không
có gì b ng v i thanh công c l ho c; ho c là, ch khi nào m b ng tính B ra, thì m i c n n thanh công c
A, còn bình thư ng thì ch ng c n...
Vi c này, không có gì khó. B n ch c n chèn m t o n code ơn gi n vào trong "Private module" c a b ng tính.
Trư c h t, b n hãy t o cho riêng mình m t thanh công c . t tên cho nó là "MyCustomToolbar" ch ng h n.
Ti p theo, b n nh n Alt+F11 m c a s Microsoft Visual Basic, nh n úp vào This workbook trong khung
Project. B n cũng có th làm nhanh vi c này b ng cách nh n nút ph i chu t vào cái bi u tư ng Excel bé tí n m
ngay bên trái menu File, r i ch n View Code, c a s VBA cũng s m ra v i This workbook ư c ch n s n:
Nh n ph i chu t vào bi u tư ng Excel nh bên trái menu File r i ch n View Code
R i, nh p vào hai o n code sau ây:
PHP Code:
Option Explicit
--------------------------------------------------------------------
Private Sub Workbook_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub
--------------------------------------------------------------------
Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub
B n có th thay th "MyCustomToolbar" b ng cái tên mà b n ã t cho thanh công c t t o c a b n. Sau ó
b n nh n Alt+Q tr v Excel.
th , b n hãy m thêm m t b ng tính n a, Book2.xls ch ng h n. B n s th y, khi nào b n ch n b ng tính mà
có o n code trên, thì b n m i th y "MyCustomToolbar", còn n u ch n Book2 (chuy n i qua l i gi a các
b ng tính b ng Ctrl+Tab), "MyCustomToolbar" bi n m t! Ch n l i b ng tính ban u, "MyCustomToolbar"
xu t hi n l i. V y là thành công r i!
ư c voi òi tiên. Bây gi , gi s b n mu n r ng, trong cùng m t b ng tính, nhưng ch có Sheet1 thì m i th y
"MyCustomToolbar", còn Sheet khác thì không?
ư c thôi. B n có th vi t thêm m t "Level" n a cho o n code trên. Hãy b o m là b n ang ch n b ng tính
có ch a code (t t nh t là b n óng cái Book2 i). Quay tr l i c a s VBA, b n hãy nh n ph i chu t vào Sheet
nào mà b n mu n th y "MyCustomToolbar", r i ch n View Code (ho c nh n úp vào tên Sheet ó cũng ư c).
ây tôi gi s b n ch n Sheet1.
Nh p vào hai o n code sau ây:
PHP Code:
Option Explicit
--------------------------------------------------------------------
Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub
--------------------------------------------------------------------
Private Sub Worksheet_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub
R i nh n Alt+Q quay l i Excel. Bây gi , b n hãy dùng chu t ho c nh n Ctrl+PgUp/Ctrl+PgDn ch n
qua l i các Sheet và xem th cái gì xu t hi n trên màn hình.
Xin ính kèm theo ây b ng tính ã có s n nh ng o n code nói trên, cùng m t "MyCustomToolbar" làm ví d .
Cũng xin nh c l i, chiêu này ch có tác d ng v i nh ng phiên b n trư c Excel2007.
Sao chép công th c gi nguyên tham chi u tương i (gi ng như sao chép tham chi u tuy t i)
Trong Excel, 1 công th c có th ch a nh ng tham chi u tương i ho c tuy t i. Khi 1 công th c có tham
chi u tương i ư c sao chép, thì do tính ch t, tham chi u s ch y theo n ch m i. Ch có công th c có tham
chi u tuy t i m i gi nguyên khi sao chép.
Xin nh c l i 1 tí:
Khi b n mu n công th c, dù cho copy i âu, cũng tham chi u n 1 ô hay 1 vùng c nh nào ó, b n ph i
dùng tham chi u tuy t i b ng cách thêm d u $ vào tham chi u thí d $A$1. B n cũng có th ch thêm d u $
vào tiêu chí dòng ho c ch tiêu chí c t ch c nh 1 chi u khi copy công th c.
Nhưng ôi khi b n mu n sao chép 1 công th c tham chi u tương i, gi nguyên tham chi u, nhưng l i không
mu n chuy n thành tuy t i? Có nhi u cách làm.
1. Tô en công th c trong thanh công th c (formula bar) r i copy, không copy ô, và t i ô ích cũng paste vào
thanh công th c. Cách này dùng khi b n ch sao chép 1 ô.
2. Khi b n mu n sao chép c 1 kh i ô, thì cùng Find and replace:
- trư c tiên, tô ch n kh i mu n copy.
- Nh n Ctrl + H là phím t t c a Home – Find & Select – Replace (2007) ho c Edit – Replace (2003).
- trong ô find what: gõ d u =
- trong ô replace with: gõ d u “và” (&), ho c d u nháy ơn (‘), ho c b t c ký t nào không dùng trong công
th c
- Nh n Replace All
- nguyên như v y, nh n ctrl + C
- Qua v trí c n chuy n n, nh n Ctrl + V
- nguyên như v y, chuy n ngư c l i d u & ho c d u nháy thành d u = v i công c find and replace.
- Tr v vùng ngu n h i nãy, cũng chuy n ngư c d u & thành d u =
Nghe thì nhiêu khê, nhưng v n nhanh hơn s a t ng tham chi u tương i thành tuy t i c a c 1 kh i ô, r i
chuy n ngư c l i.
Ghi chú: N u ch 1 vài ô thì dùng cách 1 nhanh hơn.
G b nh ng liên k t ma
B n m m t b ng tính, nh n ngay m t thông báo: "Update links", nhưng ch ng có link nào! Làm th nào
Update m t link khi nó không t n t i?
Nh ng liên k t ngoài (external links) là nh ng liên k t tham chi u n m t b ng tính khác, chúng có th n m
trong các công th c, trong các Name, ho c trong các i tư ng ư c chèn vào (các th , các hình...). Khi
nh ng liên k t này b "gãy", ph n l n lý do là do vi c di chuy n ho c sao chép m t Sheet n m t b ng tính
khác. Và khi ó, chúng tr thành nh ng "liên k t ma", nghĩa là th y ư ng link, nhưng không bi t chúng ư c
d n n t âu. Sau ây là m t vài cách giúp b n x lý nh ng liên k t ma này.
u tiên, b n c n xem l i li u trong các công th c trong b ng tính c a b n có ch a b t kỳ m t liên k t ngoài
nào (mà không ph i là liên k t ma) không. N u b n không ch c r ng trong các công th c trong b ng tính c a
b n có m t liên k t ngoài, b n hãy s d ng công c tìm ki m. Khi tìm ra r i, b n ch vi c ơn gi n là s a l i
cho nó chính xác, ho c xóa h n chúng i n u không c n thi t.
B n cũng có th vào trang web này: http://www.microsoft.com/downloads/s...displaylang=vi, t i v công c
Delete Links Wizard, là m t công c ư c thi t k tìm và xóa t t c nh ng liên k t như liên k t n các
Name, liên k t n các Name n, n các th , các query, các i tư ng... Tuy nhiên, công c này không tìm
ra ư c nh ng liên k t ma.
Cho dù b n ã tin ch c r ng, không có m t công th c nào có ch a liên k t, b n v n c n ph i ch c ch n là không
có b t kỳ m t liên k t ma nào ang núp âu ó. làm vi c này, tôi thư ng m h p tho i Name Manager,
dò t ng Name m t, ch c ch n r ng không có m t Name nào ch a m t tham chi u n m t b ng tính khác.
V i Excel 2003, thay vì nh n vào t ng cái tên xem tham chi u c a nó trong khung Refers to, b n có th s
d ng cách này, nhanh hơn: Ch n menu Insert | Name | Paste, r i trong h p tho i Paste Name, nh n vào nút
Paste Link. Excel s t o ra m t danh sách các Name có trong b ng tính, cùng nh ng tham chi u c a nó, ngay
trong b ng tính, b n ki m tra.
Excel 2007 thì d hơn, b n có th xem m t l n t t c các Name trong h p tho i Define Name. Nhưng n u b n
cũng mu n dán chúng ra ngoài b ng tính, b n hãy ch n Formulas | Use in formula | Paste Name, r i nh n vào
Paste List trong h p tho i v a xu t hi n.
Tuy nhiên, v i t t c các phiên b n Excel, cách nhanh nh t g i h p tho i Paste Name, là nh n F3.
N u có b t kỳ m t Name nào tham chi u n m t vùng ngoài b ng tính, có th b n s th y chúng có ch a ít
nh t m t ư ng link gi ng cái ã hi n th trong h p tho i c nh báo Update Link khi b n m b ng tính. Và b n
hãy t quy t nh là s a l i ư ng link cho úng, ho c xóa Name ó i.
Có m t lo i kiên k t khác n a, n m trong các bi u . Khi b n ã ki m tra các công th c, các Name như tôi v a
trình bày, mà b ng tính c a b n v n òi Update Link, b n nên ki m tra các bi u (n u có), nghĩa là ki m tra
vùng d li u và nhãn X-asis c a bi u xem chúng có ch a m t liên k t ngoài nào không. N u tìm th y, hãy
s a l i ư ng link cho úng.
Các liên k t ngoài còn có th núp trong các i tư ng (object) như là các Text box, các hình v , v.v... Các i
tư ng này có th ư c liên k t n m t b ng tính khác. Cách d nh t ch n nhanh các i tư ng, là b n ng
t i b t kỳ m t ô nào trong b ng tính, ch n Home | Find & Select | Go to Special [E2003: Edit | Go to... |
Special], ho c nh n F5, r i kích ho t tùy ch n Object và nh n OK. Các thao tác này s ch n t t c các i tư ng
(object) có trong b ng tính. B n nên làm nh ng vi c sau ây trong 1 b n sao c a file: V i t t c các i tư ng
ang ư c ch n, b n có th xóa, lưu b ng tính, óng b ng tính, và m ra l i xem th có còn v n gì n a
không.
Cu i cùng, nơi mà b n ph i tìm là trong nh ng sheet n mà b n ã t o ra, d u i r i quên ph t. B n hãy làm cho
chúng hi n lên (2007: View ➝Unhide, 2003: Format ➝Sheet ➝Unhide). N u m c Unhide này b m i, nghĩa
là không có sheet n. N u b n v n còn nghi ng r ng co nh ng sheet siêu n, hãy c l i chiêu s 5 tìm và
bu c chúng hi n ra.
Th là b n ã x xong nh ng link có th c mà b gãy. Bây gi n nh ng link ma. M fle b l i lên, Ch n Data –
Edit links (2007) ho c Edit Links (2003). ôi khi b n ch c n nh n ch n vào cái link ma, nh n Change Source,
và gán tr l i chính cái link ó. Nhưng thư ng thì b n b 1 thông báo l i r ng công th c nào ó b l i, và không
th c hi n ư c.
N u b n làm cách d như v y không xong thì áp d ng cách này:
M c 2 file lên, file l i và file ư c link n. T 1 ô b t kỳ c a file l i, ánh d u b ng (=), r i qua file kia ch n
cũng 1 ô b t kỳ, r i Enter. B n ã t o ư c 1 link thi t, link ngon. Lưu c 2 b ng tính l i, nhưng ng óng.
Vào b ng tính l i, l i ch n Data – Edit links (2007) ho c Edit Links (2003), Change source, s a m i tham chi u
c a link ma vào b ng tính kia. Lưu l i l n n a r i xoá ô ch a link b n m i t o.
Cách này thư ng là có hi u qu tr ma, bây gi Excel nh n ra r ng b n ã xoá link n b ng tính còn l i.
Nhưng n u v n chưa tr t n g c và v n b l i, b n làm bư c ti p theo, nhưng nh là làm trên 1 b n sao c a
file l i.
Cách này s xoá vĩnh vi n d li u c a b n, nên t t nh t là t o 1 b n d phòng trư c. M file l i lên, delete 1
sheet, lưu, óng, r i m lên l i. N u không còn thông báo update link ma, thì 100% link ma n m trong sheet ó.
N u không, delete ti p 1 sheet n a ki m tra. Trư c khi xoá sheet cu i cùng, ph i insert 1 sheet tr ng. Nh
ghi l i nh ng sheet ch a link ma.
Ti p theo, m file backup h i nãy lên, back up l n n a, tr vào sheet l i h i nãy b n ã ghi nh . Bây gi ch n
t ng vùng 10 x 10 ô d li u, xoá b ng l nh Clear – Clear All. Mà khoan, b n backup l n 2 chưa? N u chưa thì
back up i nhé. Bây gi l i lưu, óng, m lên l i xem còn l i không. N u còn, ch n vùng 10 x 10 ô ti p theo, l i
xoá, lưu, óng, m lên xem thông báo update link. n khi nào mà không còn thông báo link ma thì nghĩa là
link ma n m trong vùng 10 x 10 ô m i xoá. B n t p trung tìm ki m trong khu v c này, t ng ô m t, s th y lòi ra
con ma.
Gi m kích thư c file Excel b phình to b t thư ng
B n có bao gi có 1 file Excel b tăng kích thư c n m c báo ng ch bi t nguyên nhân? Có nhi u lý do
làm cho b ng tính b phình lên v kích thư c file và có nh ng cách lo i tr . Nh ng bí quy t sau ây có
th giúp b n n u b n có 1 file Excel có kích thư c l n b t thư ng.
Có khi nào b n b b i th c do c ăn mà chưa tiêu hoá k p chưa? File Excel cũng th . Nó b phình ra là do
b n c nh i nhét th vào b t nó ph i th c hi n, nó ph i nu t tr ng ch không k p nhai, h u qu là nó
s không làm vi c như ý mu n.
Tôi ã th v i 1 file Excel chu n v i khá nhi u d li u. V i d li u thô, nó có kích thư c 1,37 Mb. R i tôi
cho vào 1 Pivot Table, s d ng d li u ngu n là 4 c t c a vùng d li u. Kích thư c file tăng lên 2,4 Mb. Tôi
th thi t l p vài nh d ng, và kích thư c file l p t c b nhân ôi.
M t trong nh ng nguyênnhân ch y u làm tăng kích thư c file nh ng file Excel trư c 2007, khi chưa có
khái ni m table, là các b n c th nh d ng màu, c font, màu ch , óng khung, . .. cho c c t ho c cho
c dòng, n u không nói là c b ng tính; ch không ch nh d ng cho khu v c ch a d li u. Tôi t ng th y
ngư i h m b ng tính m i lên, là l p t c Ctrl A, tô tr ng toàn b , óng khung toàn b . Không nh ng th
h còn xác nh vùng d li u ngu n cho bi u , cho Pivot table, . . . là c nguyên c t. Có khi th y cái
thanh cu n d c và ngang c a Excel tr nên nh tí t , kéo hoài không th y h t mà d li u thì tr ng trơn.
gi i quy t b n ph i s a, b h t nh ng nh d ng th a trong nh ng dòng c t tr ng, b cái thói quen
xoá màu fill color b ng cách ch n fill tr ng. Hãy ch n No Fill! Sau ó i u ch nh d li u ngu n c a bi u ,
c a Pivot Table ch v a v i vùng có d li u.
Hãy làm như sau: trư c h t hãy back up b ng tính l i.
1. G b nh ng nh d ng trên nh ng dòng c t th a:
Bư c u tiên là xác nh b ng tay và m t ô cu i cùng bên ph i dư i, có ch a d li u. ng có mà dùng
phím ctrl+ mũi tên xu ng ho c ctrl + mũi tên qua ph i, ho c dùng Find - Select - Go To Special – Last
Cells, cách này s ch t i ô cu i cùng có nh d ng, không ph i ô cu i có d li u. Khi ã xác nh b ng m t
ô cu i ch a d li u thì click ch n nguyên dòng k dư i ô ó. Lúc này i nh n Ctrl + Shift + mũi tên xu ng
ch n toàn b nh ng dòng bên dư i vùng có d li u. Sau ó dùng l nh Clear – All xoá vùng này.
Tương t , khi xác nh ô cu i có ch a d li u xong, nh n ch n nguyên c t li n k bên ph i, nh n ti p Ctrl
+ Shift + mũi tên qua ph i ch n toàn b c t bên ph i. Sau ó l i dùng l nh Clear – All xoá vùng
này.
Không nên dùng l nh xoá dòng ho c c t, vì có th có nh ng công th c tham chi u n chúng. Lưu b ng
tính l i và th xem kích thư c file trong Property:
2007: Office button ➝Prepare ➝Properties ➝Document Properties ➝Advanced Properties
2003: File ➝Properties… ➝General
2. Xoá Macro: Không ph o là xoá h n Macro, mà ch g chúng ra ngoài file Excel:
Có 1 cách nhanh, không gây h i ó là Export t t c các modules và UserForms vào ĩa c ng. Nh n Alt F11
vào c a s VBA. nh n chu t ph i vào t ng module, ch n remove module (tên môdule). Trong thông báo
hi n ra nh n Yes, và ch n 1 thư m c lưu l i. làm ti p cho t ng cái Form. ng quên c nh ng macro
lưu tr trong sheet ho c workbook.
Sau khi ã xoá xong, lưu b ng tính l i. Sau ó, cũng trong c a s VBA, vào menu File – Import File và
import h t nh ng modue và form h i nãy. Làm như v y, ta v n có th s d ng form và Macro, nhưng m i
cái như v y s t o1 file text, và ngăn ch n nh ng th linh tinh mà Macro mang theo.
M t s ng d ng trên Internet có th làm công vi c này, nhưng ư c bi t r ng nh ng ti n ích ó s làm
r i tung code và th m chí làm tăng kích thư c file. T t nh t trư c khi ng d ng 1 ti n ích nào, hãy backup
file c a b n trư c.
3. i u ch nh vùng d li u ngu n:
N u sau khi làm nh ng bư c trên mà kích thư c file c a b n không gi m ư c bao nhiêu, hãy ki m tra d
li u ngu n c a Pivot Table và Pivot Chart. M t vài ngư i thư ng s d ng nguyên c c t d li u làm
ngu n cho Pivot table, ch phòng xa sau này có thêm d li u c p nh t vào dù ch vài dòng. N u nh t
thi t ph i phòng xa như v y, t t hơn b n dùng name ng. Xem thêm tuy t chiêu s 47.
4. Làm s ch các sheet:
Trong các sheet c a b n có th t n t i nh ng nh d ng th a, nh ng style, nh ng autoshape th y ư c và
không th y ư c (có khi lên n hàng trăm ho c hàng ngàn).
a. Xoá object và autoshape th a. tìm ra nh ng autoshape ho c object n b n ph i vào option c a
Excel s a l i như hình sau:
2007:
2003:
B n có th nh n Ctrl + G, Special – Object ch n 1 lúc nhi u object.
b. Làm s ch nh ng cái không nhìn th y trong sheet:
Trư c tiên, b n hãy backup b ng tính. Unhide toàn b sheet n và c sheet siêu n. (xem thêm chiêu s
5). Bây gi b nth xoá l n lư t t ng sheet m t (xoá h n), lưu l i, r i vào Property xem l i kích thư c. N u
sau khi xoá sheet nào, mà kích thư c file gi m áng k , thì sheet ó ch a nhi u rác (không k d li u).
V y, khi ã xác nh sheet ch a rác thì b n ph i làm gì?
B n hãy m file backup h i nãy lên, t o 1 sheet m i toanh, ch n vùng d li u c a sheet ch a rác, dùng
l nh Cut (Ctrl + X), ch ng copy, Paste vào sheet m i. B ng cách c t (Cut), Excel s gi nguyên tham
chi u cho b n.
Cu i cùng, delete sheet ch a rác.
Hy v ng là sau này, các b n s bi t cách x lý nh ng file có kích thư c l n l thư ng.
C u d li u t m t b ng tính b l i
Khi b ng tính b l i (corrupt), b hư, nghĩa là b n b m t h t d li u, mà nhi u khi s m t mát này còn au
hơn là m t ti n. Chiêu này s giúp b n m t vài cách ph c h i l i ph n nào d li u trong nh ng b ng tính
b l i.
M t b ng tính ôi khi g p ph i nh ng l i mà b n ch ng hi u vì lý do gì. i u này có th em l i cho b n nh ng
v n tr m tr ng, nh t là khi b n b hư m t b ng tính quan tr ng mà b n chưa h sao lưu d phòng. Do ó, bài
h c u tiên là: Luôn luôn sao lưu b ng tính c a b n vào m t nơi khác. Nhưng trong th c t thì không ph i
ai cũng nh i u này, và, có th là b ng tính c a b n s b hư trư c khi b n nghĩ n vi c sao lưu!
Tuy nhiên, b n ng th t v ng quá, vì cho dù b ng tính c a b n b l i, ôi khi b n v n có th m ư c nó ra và
có th làm ư c cái gì ó...
Khi b n v n còn m ư c b ng tính
Khi b n v n còn có th m ư c m t b ng tính b l i, thì trư c khi làm b t c i u gì, b n hãy sao lưu ngay ra
m t b n khác, n u không, có th b n s m t luôn nó. Vì n u còn gi ư c b n sao lưu, b n có th c u c u ư c
m t s giúp chuyên nghi p hơn, khi b n không th làm gì n a.
1. B n hãy m cái b ng tính b l i ó ra, v i phiên b n Excel cao nh t có th , và l i nh n lưu thêm m t l n n a,
tuy nhiên i u này thì không c n thi t n u như b n ang dùng Excel 2007.
2. N u như b ng tính ã làm b ng cách trên ây không ho t ng, b n hãy c g ng m l i l n n a và lưu nó
dư i d ng HTML (Single File Web Page) ho c HTM (Web Page). R i óng nó l i, và l i m ra, nhưng l n này
thì lưu l i v i d ng bình thư ng (*.xls ch ng h n).
Khi lưu d ng HTML ho c HTM, b ng tính c a b n s b m t nh ng th sau ây:
• V i nh ng b ng tính t o ra t Excel 2007:
- Nh ng tính năng m i c a Excel 2007
- Các PivotTable và các bi u (chúng v n ư c lưu l i, nhưng s m t h t khi b n m ra và lưu l i v i
d ng bình thư ng c a Excel)
- Các VBA Project.
• V i nh ng b ng tính t o ra t nh ng phiên b n trư c Excel 2007 (Excel 2003, Excel XP,...):
- Nh ng nh d ng s chưa dùng n
- Nh ng style chưa dùng n
- Các thi t l p Data Consolidation
- Các Seriano
- Các công th c s d ng ngôn ng t nhiên, chúng s ư c chuy n i thành các tham chi u dãy bình
thư ng
- Các hàm t t o
- Các nh d ng g ch ngang ch (strikethrough), ch s trên (superscript), ch s dư i (subscript)
- Các thay i có th h i ph c (b ng l nh Undo)
- Các thi t l p nh d ng trang cho các bi u ã ư c nhúng trong b ng tính
- Các danh sách cài t cho các ListBox và ComboBox
- Các lo i nh d ng có i u ki n (Conditional Formatting)
Ngoài ra, các b ng tính ư c chia s (shared workbook) trong nh ng phiên b n trư c Excel 2007 s không còn
chia s ư c n a. V i các bi u , nh ng thi t l p cho "Value (Y) axis crosses at category number" trên tab
Scale trong h p tho i Format Axis s không ư c lưu, n u như tùy ch n "Value (Y) axis crosses a maximum
category" ư c ch n; nh ng thi t l p "Vary colors by point" trong h p tho i Format Data Series cũng không
ư c lưu n u như bi u ch a nhi u hơn m t Data Serie.
3. Cu i cùng, n u như b ng tính ó v n không ho t ng, hãy c g ng m l i b ng tính ó m t l n n a, và l n
này thì lưu nó v i d ng SYLK (lo i t p tin có uôi là *.slk - Symbolic Link). Nhưng hãy nh r ng, khi b n lưu
d ng này, thì ch có Sheet hi n hành (active sheet) ư c lưu, do ó, n u trong b ng tính có nhi u Sheet, b n
hãy làm thêm vài l n, v i m i l n m t Sheet, nh t tên cho nó sao cho d nh n bi t. R i l i m cái b ng tính
*.slk ó ra, và lưu l i v i d ng bình thư ng (*.xls ch ng h n).
Khi b n không còn m ư c b ng tính
1. N u như b ng tính b hư c a b n không th m ra ư c n a, b n hãy th dùng Microsoft Word m nó.
Nghe thì có v bu n cư i, nhưng ôi khi, b n có th copy ư c m t vài d li u trong b ng tính này (dĩ nhiên t t
c nh ng nh d ng, công th c, v.v... thì m t h t).
2. B n hãy m m t b ng tính m i, và t o cho nó m t Extenal Link (liên k t ngoài) n b ng tính b hư. Ví d :
='C:Documents and SettingsBNTTMy Documents[ChookSheet.xls]Sheet1'!A1
Copy liên k t này vào nh ng ô khác (s lư ng bao nhiêu thì tùy thu c vào trí nh c a b n v cái b ng tính ã b
hư, nó có bao nhiêu hàng, bao nhiêu c t...), và cũng làm tương t cho nh ng Sheet khác (n u c n thi t). N u
b n không nh ư c b t kỳ tên Sheet nào trong b ng tính ã b hư, b n c t o i m t Sheet v i ư ng d n
chính xác, Excel s hi n th tên c a Sheet khi b n nh n Enter. Có th b n s th y ư c gì ó...
3. N u hai cách trên không em l i cho b n i u gì, b n hãy vào trang web Openoffice.org, download phiên b n
mi n phí c a b ph n m m này v . Ngo i tr các tên trên menu và toolbar, Openoffice.org khá gi ng Excel, vì
nó ư c t o ra cùng m t c u trúc b ng tính v i Excel (có n 96% các công th c trong Excel có th s d ng
trong b ng tính c a Openoffice.org).
Sau khi ã download phiên b n mi n phí c a Openoffice.org, b n cài t nó vào máy. R i dùng nó m b ng
tính b hư c a b n. Trong khá nhi u trư ng h p, d li u c a b n s ư c ph c h i. Tuy nhiên, nh ng VBA code
thì không còn gì c , vì các VBA code c a Excel không tương thích v i Openoffice.org.
4. N u s b n quá en, không th dùng Openoffice.org c u d li u, v n còn m t cách n a, nhưng b n ph i
m t ti n. M t trong nh ng chương trình có th ph c h i khá t t nh ng b ng tính b hư là Corrupt File Recovery.
B n hãy t i và cài t ph n m m này, ch y chương trình ExcelFix, nh n Select File, ch n b ng tính b l i, và
nh n Diagnose ph c h i. B n s th y thành qu c a mình, và có th lưu l i b ng tính, n u như b n ã tr ti n
b n quy n, còn n u chưa tr ti n b n quy n, thì b n ch có th xem ch không th lưu l i.
S d ng Data-Validation khi danh sách ngu n n m trong m t Sheet khác
S d ng Data-Validation là m t cách d nh t áp d ng m t quy t c nh p li u cho m t dãy d li u. Theo
m c nh, Excel ch cho phép Data-Validation s d ng nh ng danh sách ngu n n m trong cùng m t Sheet
v i dãy d li u s ư c áp d ng quy t c này. Tuy nhiên, v n có cách lách kh i chuy n ó.
Chiêu này s giúp b n làm cho Data-Validation có th s d ng nh ng danh sách ngu n n m trong m t Sheet
khác. Cách th nh t là l i d ng chính vi c t tên cho m t dãy c a Excel, cách th hai là s d ng m t hàm
g i ra danh sách ó.
Cách 1: S d ng Name cho dãy ngu n
Có l cách nhanh nh t và d nh t vư t qua rào c n Data-Validation c a Excel là t tên cho dãy mà b n s
dùng làm quy t c nh p li u. bi t cách t tên cho dãy, b n xem lo t bài này: S d ng tên cho dãy.
Gi s b n ã t tên cho dãy s dùng làm quy t c nh p li u là MyRange. B n ch n ô (ho c dãy) trong b t kỳ
Sheet nào mà b n mu n có m t danh sách x ra nh p li u, r i trong menu Data trên Ribbon, b n ch n Data
Tools | Data Validation [E2003: Data | Validation]. Ch n List trong danh sách các Allow, và trong khung
Source, b n nh p vào =MyRange. Nh n OK. B i vì b n ã s d ng m t Name làm List, nên b n có th áp
d ng Data-Validation này cho b t kỳ Sheet nào.
Cách 2: S d ng hàm INDIRECT
Hàm INDIRECT() cho phép b n tham chi u n ô ch a d li u text i di n cho m t a ch ô. Và r i b n có
th s d ng ô ó như môt tham chi u c c b , cho dù nó tham chi u n d li u trong m t Sheet khác. B n có
th s d ng tính năng này tham chi u n nơi ch a dãy mà b n s dùng làm danh sách ngu n cho quy t c
Data-Validation.
Gi s , dãy ch a danh sách ngu n này n m Sheet1, trong dãy $A$1:$A$8. t o m t Dala-Validation, b n
cũng làm nh ng bư c như tôi ã nói cách 1, nhưng thay vì gõ tên dãy vào trong Source, thì b n nh p vào ó
công th c: =INDIRECT("Sheet1!$A$1:$A$8"). Hãy ch c ch n r ng tùy ch n In-cell drop-down ang ư c
kích ho t, và nh n OK.
N u tên Sheet c a b n có ch a kho ng tr ng, ho c có d u ti ng Vi t, b n ph i t tên Sheet trong m t c p nháy
ơn ('). Ví d , gi s tên Sheet ch a danh sách ngu n là Sheet 1 (ch không ph i Sheet1), thì b n s a công th c
trên l i như sau: =INDIRECT("'Sheet 1'!$A$1:$A$8"). Ch khác nhau so v i công th c h i nãy là có thêm m t
d u nh y ơn (') sau d u nháy kép ("), và m t d u nháy ơn (') n a trư c d u ch m than (!).
Xin m m t ngo c ơn: N u như có th ư c, khi g p nh ng tham chi u n tên Sheet, b n nên t p thói quen
luôn luôn b nó vào trong c p d u nháy ơn. i u này, tuy ch ng có tác d ng gì v i nh ng tên sheet như
Sheet1, DMHH... nhưng nó s giúp b n không bao gi g p l i, khi b n hay t tên Sheet có kho ng tr ng, hay
là có b d u ti ng Vi t...
Ưu i m và Khuy t i m c a c hai cách ã nêu trên
t tên cho dãy, và dùng hàm INDIRECT, u có cái ti n l i và c cái b t ti n.
Ti n l i c a vi c t tên cho dãy, là vi c b n thay i tên Sheet ch ng có nh hư ng gì n Data-Validation. Và
ó chính là cái b t ti n c a vi c dùng INDIRECT, khi b n i tên Sheet, tên m i s không t ng c p nh t
trong công th c dùng INDIRECT, cho nên n u v n mu n dùng công th c này, b n ph i m Data-Validation ra
và s a l i tên Sheet trong công th c.
Ti n l i c a vi c dùng INDIRECT, là dãy dùng làm danh sách ngu n c a b n luôn luôn n m yên ch ã ch n
(A1:A8 trong ví d trên ch ng h n). Còn n u b n dùng Name, mà b n l tay xóa m t vài hàng (ho c c t) ngay
ch ch a Name, thì b n ph i i u ch nh l i cho úng...
i u khi n Conditional Formating b ng checkbox.
M c dù Conditional Formating là 1 trong nh ng chiêu m nh c a Excel, nhưng mu n b t hay t t nó b ng ribbon
hay menu thì khá b c b i. Bây gi ta bi n hoá b ng cách i u khi n b ng 1 checkbox gi ng như 1 công t c
(ho c 1 cái toggle Button càng gi ng hơn).
Conditional Formating có t i Excel 97, gán nh d ng cho nh ng ô nào tho 1 s i u ki n nào ó. i u ki n
có th là 1 i u ki n v giá tr , nhưng ta có th tuỳ bi n nhi u hơn khi dùng i u ki n là công th c, d a vào ó
ta có th thay i nh d ng cho nh ng ô này, khi có s thay i giá tr c a ô khác.
1. Dùng 1 Checkbox ho c 1 Toggle Button xem và n d li u:
B n mu n m t vùng d li u nào ó ch hi n ra lúc c n xem, xem xong thì bi n i cho r nh. Trư c tiên b n ph i
gán lên sheet 1 Checkbox ho c 1 Toggle Button. Trong Excel 2007, vào tab Developer, nh n Insert trong
Controls - ch n Checkbox ho c Toggle Button trong Control Toolbox, trong Excel 2003 ch n trong view –
Toolbar – Control Toolbox, v lên sheet 1 cái. Trong hình, tôi làm th 2 cái.
.................
Nh n vào nút design, click ch n cái control b n v a v , nh n thêm nút Property. Trong c a s Property, s a
dòng Caption thành View/ Hide, s a dòng Linked Cell thành $C$2. (c 2007 và 2003 như nhau, c checkbox và
Toggle Button như nhau).
Bây gi khi b n click ch n checkbox ho c nh n nút Toggle, ô C2 s l n lư t có các giá tr TRUE và FALSE.
..................
Bây gi gi s vùng d li u c a b n g m 4 fields, trong ó b n ch mu n 3 fields hi n thư ng xuyên, còn field
th 4 thì khi nào c n m i hi n ra xem, không c n thì d u i. B n ánh d u ch n vùng ch a field 4, trong
2007 b n vào tab Home, Conditional Formating, New Rule, ch n ti p “use a formula to determine which cells
to format”, trong 2003 là Fornat - Conditional Formating - ch n ti p “Formula is”. Trong ô k b n, b n gõ: =
$C$2=FALSE.
Nh n vào nút Format, nh d ng font ch màu tr ng. Nh n OK và OK. Nh n nút design 1 l n n a thoát ta
khõi ch design Mode. Và nh n nút toggle ho c click ch n cái checkbox xem k t qu .
............
N u b n không thích thì nh d ng ô C2 ch tr ng luôn, kh i th y ch TRUE, FALSE hi n lên.
2. T t m nh d ng màu cho ô:
Dùng Conditional Formating nh m tô màu ô theo i u ki n giúp ta d tìm ư c nh ng ô có giá tr c bi t cho
trư c. Excel 2007 có nhi u nh d ng khác nhau cho giá tr s n m trong kho ng cho trư c. Nhưng bi n pháp
m t t b ng checkbox là không có s n.
Tương t như ph n trên, ta t o ra 1 checkbox ho c 1 Toggle Button link t i ô $C$2. Nhưng l n này ta t name
cho nó là IsFill ch ng h n. Ta cũng t name cho ô $A$2 là BeginNum và $B$2 là EndNum, v i A2 là gi i h n
dư i thí d 100, và B2 là gi i h n trên thí d 1.000.
Trong vùng d li u B5:B16, ta mu n giá tr nào n m trong kho ng BeginNum và EndNum s ư c tô màu. V y
dùng conditional Formating như trên, ch n vùng C8:C18, l n này công th c là:
=AND($C8>=BeginNum,$C8<=EndNum,IsFill)
Ch n cho nó 1 nh d ng màu theo ý mu n.
K t qu : khi nh n button ho c click checkbox thay i tr ng thái thành True, các ô ch a s trong kho ng (100,
1.000) s ư c tô màu, các ô còn l i không tô. Khi thay i thành False, các ô tr l i bình thư ng.
ng th i, vì b n t công th c liên quan n BeginNum và EndNum, nên khi thay i 2 s này, k t qu tô
màu cũng thay i.
............
B n th y y, n u b n chưa xem bài này mà th y 1 file tương t c a ngư i khác, b n có th l m tư ng ngư i ta
s d ng code c a VBA. S th c thì quá ơn gi n ph i không?
ánh d u nh ng ô ch a công th c b ng Conditional Formatting
Khi m t ô có ch a d li u, b n có th mu n bi t d li u trong ô ơn thu n là d li u nh p vào, hay d li u là
k t qu c a 1 công th c. B n có th ch c n click ch n ô ó và xem trên thanh công th c. B n cũng có th dùng
phím t t Ctrl + ~ chuy n qua l i gi a ch xem giá tr và xem công th c.
Chiêu s 19 này s gi i thi u v i b n 1 hàm t t o, k t h p v i Conditional Formatting ánh d u ô ch a
công th c. B ng cách này có th giúp b n tìm ra t t c nh ng ô ch a công th c trong s 10.000 ô mà không
ph i ngó t ng ô m t.
M c dù b n có th dùng 1 hàm có s n c a Macro4 trong Conditional Formatting, như sau:
Trong h p tho i Conditional Formatting, ch n công th c, gõ công th c này: = CELL(“type”,A1). Nhưng h n
ch c a vi c dùng hàm Cell() là công th c s t tính l i m i khi có s thay i nh xíu trong b ng tính. Vì
Cell() là 1 hàm thu c lo i volatile. Khi Excel tính l i Cell() cho 10.000 ô như trên s khi n cho b n b c mình vì
ch i.
Do ó b n hãy dùng tuy t chiêu sau ây, ơn gi n, d làm và không ph i hàm lo i volatile:
B n hãy nh n Alt – F11 vào c a s VBA, nh n chu t ph i vào This Workbook insert vào 1 module. Nh p
o n code sau vào khung so n th o:
PHP Code:
Function IsFormula (CheckCells As Range)
IsFormula = CheckCells.HasFormula
End Function
Do tính ch t c a Property HasFormula, hàm b n m i t o s tr v các giá tr lu n lý True, False. Nghĩa là khi
b n gõ vào ô b t kỳ công th c = IsFormula(A1) s cho k t qu True n u A1 ch a công th c và cho k t qu
False n u A1 ch a giá tr .
óng c a s VBA l i, tr v b ng tính. Bây gi ánh d u toàn b vùng d li u c a b n (có th ch n dư ra m t
s c t và dòng, phòng khi b n c p nh t thêm d li u) sao cho ô A1 là ô hi n hành.
B ng cách như chiêu s 18, b n vào ư c ch c n thi t gõ công th c trong h p tho i Conditional Formatting,
và gõ vào:
=IsFormula(A1), sau ó nh d ng tô màu ho c i màu ch cho khác nh ng ô còn l i.
Sau khi nh n OK b n s ư c k t qu là t t c nh ng ô ch a công th c s ư c tô màu. N u b n thêm ho c thay
i 1 ô, n u ô ó tr thành công th c thì l p t c ô ó i màu.
ôi khi b n không th y k t qu , vì anh Bill lanh chanh và ch m hi u, anh ta cho r ng công th c s d ng hàm
c a b n là 1 text nên nh t s a thành : =”IsFormula(A1)”. V y b n ph i vào ch cũ s a l i.
Bây gi m i khi b n s a ho c thêm 1 ô tr thành công th c, ô ó s có màu. ngư c l i, n u b n s a 1 công th c
thành giá tr ho c thêm giá tr vào 1 ô, ô ó s không có màu.
m ho c c ng nh ng ô ã ư c nh d ng có i u ki n
Chúng ta thư ng h i: "Làm th nào tính toán v i nh ng ô ã ư c tô m t màu c th nào ó?" Câu h i này
thư ng ư c nêu ra, b i vì Excel không có m t hàm bình thư ng nào thưc hi n ư c nhi m v này; tuy
nhiên, nó có th ư c th c hi n b ng m t hàm t t o.
V n duy nh t x y ra v i vi c s d ng hàm t t o, là nó không th l c ra b t kỳ m t lo i nh d ng nào ã
ư c áp d ng b i vi c nh d ng có i u ki n (conditional formatting). Tuy nhiên, suy nghĩ m t tí, b n v n có
th có ư c k t qu tương t mà không ph i c n n m t hàm t t o.
Gi s r ng b n có m t danh sách dài nh ng con s trong dãy $A$2:$A$100. Và b n ã áp d ng nh d ng có
i u ki n cho dãy ó: ánh d u nh ng ô nào có giá tr n m trong kho ng t 10 n 20. Bây gi , b n mu n l y ra
giá tr c a nh ng ô th a mãn i u ki n mà b n ã thi t l p, và tính t ng c a nh ng ô ã ư c áp d ng nh d ng
ó. Không có gì khó! B n ng nh ng ki u nh d ng ã ư c áp d ng chi ph i b n, nói cách khác, b n
không c n quan tâm nh ng ô ó ư c nh d ng ki u gì. B n ch c n quan tâm n i u ki n áp d ng
nh d ng cho chúng (trong trư ng h p này, là nh ng ô có giá tr trong kho ng t 10 n 20).
B n có th dùng hàm SUMIF() tính t ng c a nh ng ô th a mãn i u ki n nào ó, nhưng ch m t i u ki n
mà thôi! N u mu n có nhi u i u ki n, b n ph i dùng hàm SUMIFS() trong Excel 2007, ho c là dùng m t công
th c m ng. ây tôi s nói n công th c m ng, vì nó có th s d ng trong h u h t các phiên b n c a Excel.
V i trư ng h p ã ví d trong bài này, b n s d ng m t công th c m ng gi ng như sau:
=SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100)))
Khi nh p m t công th c m ng, b n ng nh n Enter, hãy nh n Ctrl+Shift+Enter. Khi ó, Excel s t ng
thêm m t c p d u ngo c hai u công th c, gi ng như v y:
{=SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100)))}
N u b n t gõ c p d u ngo c ó, thì công th c s không ch y. B n ph i Excel làm vi c này cho b n.
Và b n cũng nên bi t i u này: s d ng công th c m ng có th làm cho Excel tính toán ch m hơn, n u như có
quá nhi u tham chi u n nh ng dãy l n.
Trên di n àn này có r t nhi u các bài vi t v công th c m ng, b n có th tham kh o thêm. Ho c n u b n gi i
ti ng Anh và thích nghiên c u sâu hơn v công th c m ng, b n hãy ghé thăm trang web này:
http://www.ozgrid.com/Excel/arrays.htm.
M t cách khác
Ngoài vi c s d ng công th c m ng, b n có th dùng m t c t ph tham chi u n nh ng ô bên c t A. Nh ng
tham chi u này s tr v nh ng giá tr c a c t A mà th a mãn i u ki n b n ã t ra (ví d : > 10, < 20). làm
i u này, b n theo các bư c sau:
Ch n ô B2 và nh p vào ó công th c:
=IF(AND(A2>10, A2<20), A2, "")
Kéo công th c này xu ng cho n ô B100. Khi các công th c ã ư c i n vào, b n s có nh ng giá tr n m
trong kho ng 10 n 20 (xu t hi n trong c t B).
Thêm m t chiêu ph : nhanh chóng "kéo" các công th c vào trong m t c t xu ng n ô cùng hàng v i ô
cu i cùng ã ư c s d ng c a c t ngay bên c nh (trong trư ng h p này, là "kéo" t ô B2 n ô B100, là ô
tương ng v i ô cu i cùng ã ư c s d ng trong c t A, ô A100), sau khi nh p công th c trong ô u tiên (ô
B2), hãy ch n ô ó, r i nh p úp chu t (double click) vào cái Fill handle (là cái núm chút xíu n m góc dư i
bên ph i c a ô ư c ch n, mà b n v n thư ng dùng "kéo" công th c)
Bây gi , b n có th ch n b t kỳ m t ô nào mà b n mu n xu t hi n t ng c a nh ng giá tr th a mãn i u ki n ã
ra, và s d ng m t hàm SUM bình thư ng (=SUM(B2:B100) ch ng h n). B n có th n (Hide) c t B i n u
b n mu n.
M t cách khác n a
Cách dùng c t ph như tôi v a nói, ch c ch n là ch y t t r i. Nhưng, Excel còn có m t hàm cho phép b n s
d ng hai ho c nhi u i u ki n cho m t dãy. ó làm hàm DSUM().
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438
Nhung meo trong_excel_2438

Contenu connexe

En vedette

Contactus Consulting Presentation
Contactus Consulting PresentationContactus Consulting Presentation
Contactus Consulting Presentation
Francisco Posada
 
Free zones in the uae 2009
Free zones in the uae 2009Free zones in the uae 2009
Free zones in the uae 2009
Raj Kadam
 
Sonrisa Contagiosa Diapositivas
Sonrisa Contagiosa DiapositivasSonrisa Contagiosa Diapositivas
Sonrisa Contagiosa Diapositivas
carechugua
 
Chỉ số đánh giá chất lượng thể chế nhóm9
Chỉ số đánh giá chất lượng thể chế nhóm9Chỉ số đánh giá chất lượng thể chế nhóm9
Chỉ số đánh giá chất lượng thể chế nhóm9
Chinh Tran
 
Innovación como dirección de iniciativas estratégicas
Innovación como dirección de iniciativas estratégicasInnovación como dirección de iniciativas estratégicas
Innovación como dirección de iniciativas estratégicas
InnovacionSistematica
 
Tỷ giá hối đoái tcqt
Tỷ giá hối đoái tcqtTỷ giá hối đoái tcqt
Tỷ giá hối đoái tcqt
Hothuylinh17
 
Vernier v2
Vernier v2Vernier v2
Vernier v2
gdlcr
 
44651882 bai-tập-tcqt
44651882 bai-tập-tcqt44651882 bai-tập-tcqt
44651882 bai-tập-tcqt
tatto0
 

En vedette (19)

ISCRAM Overview
ISCRAM OverviewISCRAM Overview
ISCRAM Overview
 
Binarios
BinariosBinarios
Binarios
 
Contactus Consulting Presentation
Contactus Consulting PresentationContactus Consulting Presentation
Contactus Consulting Presentation
 
Nuevo paradigma gestion: Los equipos que enamoran
Nuevo paradigma gestion: Los equipos que enamoranNuevo paradigma gestion: Los equipos que enamoran
Nuevo paradigma gestion: Los equipos que enamoran
 
Free zones in the uae 2009
Free zones in the uae 2009Free zones in the uae 2009
Free zones in the uae 2009
 
Restaurante Belvedere
Restaurante BelvedereRestaurante Belvedere
Restaurante Belvedere
 
My Space - Reflections on the Design Process
My Space - Reflections on the Design ProcessMy Space - Reflections on the Design Process
My Space - Reflections on the Design Process
 
Sonrisa Contagiosa Diapositivas
Sonrisa Contagiosa DiapositivasSonrisa Contagiosa Diapositivas
Sonrisa Contagiosa Diapositivas
 
Prescripción Yoga terapeutico como actividad física en el entorno clínico
Prescripción Yoga terapeutico como actividad física en el entorno clínicoPrescripción Yoga terapeutico como actividad física en el entorno clínico
Prescripción Yoga terapeutico como actividad física en el entorno clínico
 
Curso experto en educación infantil
Curso experto en educación infantilCurso experto en educación infantil
Curso experto en educación infantil
 
Chỉ số đánh giá chất lượng thể chế nhóm9
Chỉ số đánh giá chất lượng thể chế nhóm9Chỉ số đánh giá chất lượng thể chế nhóm9
Chỉ số đánh giá chất lượng thể chế nhóm9
 
Recorrido por algunos fósiles urbanos de León.
Recorrido por algunos fósiles urbanos de León.Recorrido por algunos fósiles urbanos de León.
Recorrido por algunos fósiles urbanos de León.
 
Innovación como dirección de iniciativas estratégicas
Innovación como dirección de iniciativas estratégicasInnovación como dirección de iniciativas estratégicas
Innovación como dirección de iniciativas estratégicas
 
Virus informaticos
Virus informaticosVirus informaticos
Virus informaticos
 
Saasu Conference: Service Design
Saasu Conference: Service DesignSaasu Conference: Service Design
Saasu Conference: Service Design
 
Tỷ giá hối đoái tcqt
Tỷ giá hối đoái tcqtTỷ giá hối đoái tcqt
Tỷ giá hối đoái tcqt
 
Vernier v2
Vernier v2Vernier v2
Vernier v2
 
44651882 bai-tập-tcqt
44651882 bai-tập-tcqt44651882 bai-tập-tcqt
44651882 bai-tập-tcqt
 
OpenLounge '14 Session: How NewVoiceMedia Leverages Fliptop to Get More MQLs
OpenLounge '14 Session: How NewVoiceMedia Leverages Fliptop to Get More MQLsOpenLounge '14 Session: How NewVoiceMedia Leverages Fliptop to Get More MQLs
OpenLounge '14 Session: How NewVoiceMedia Leverages Fliptop to Get More MQLs
 

Similaire à Nhung meo trong_excel_2438

Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
bookbooming1
 
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
bookbooming1
 
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
sao12
 
Hướng Dẫn Sử Dụng excel 2010
Hướng Dẫn Sử Dụng excel 2010Hướng Dẫn Sử Dụng excel 2010
Hướng Dẫn Sử Dụng excel 2010
xeroxk
 
Ung dung excel trong kinh te
Ung dung excel trong kinh teUng dung excel trong kinh te
Ung dung excel trong kinh te
Hung Pham Thai
 
Final style ms_excel
Final style ms_excelFinal style ms_excel
Final style ms_excel
Khôi
 
Excels
ExcelsExcels
Excels
PVFCCo
 
1. ms excel ung dung trong kinh te (phan i)
1. ms excel ung dung trong kinh te (phan i)1. ms excel ung dung trong kinh te (phan i)
1. ms excel ung dung trong kinh te (phan i)
Nam Hao
 
Excel 2010 tutorial
Excel 2010 tutorialExcel 2010 tutorial
Excel 2010 tutorial
tunglam37
 
Ung dung ms excel trong kinh tế
Ung dung ms excel trong kinh tếUng dung ms excel trong kinh tế
Ung dung ms excel trong kinh tế
Thang Lang
 
bai giang tin hoc dai cuong phan Excel full.ppt
bai giang tin hoc dai cuong phan Excel full.pptbai giang tin hoc dai cuong phan Excel full.ppt
bai giang tin hoc dai cuong phan Excel full.ppt
NguynVnChung8
 
Phân tích dữ liệu thống kê
Phân tích dữ liệu thống kêPhân tích dữ liệu thống kê
Phân tích dữ liệu thống kê
Học Huỳnh Bá
 
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCELPHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
Le Nguyen Truong Giang
 

Similaire à Nhung meo trong_excel_2438 (20)

Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
 
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excel[bookbooming.com]
 
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
Giao trinh-excel-2007-nhung-tuyet-chieu-trong-excelbookbooming-com-1209230501...
 
Thực hành kế toán máy tính trên excel 2010 full data4u
Thực hành kế toán máy tính trên excel 2010 full  data4uThực hành kế toán máy tính trên excel 2010 full  data4u
Thực hành kế toán máy tính trên excel 2010 full data4u
 
Hướng Dẫn Sử Dụng excel 2010
Hướng Dẫn Sử Dụng excel 2010Hướng Dẫn Sử Dụng excel 2010
Hướng Dẫn Sử Dụng excel 2010
 
Ung dung excel trong kinh te
Ung dung excel trong kinh teUng dung excel trong kinh te
Ung dung excel trong kinh te
 
Final style ms_excel
Final style ms_excelFinal style ms_excel
Final style ms_excel
 
Excels
ExcelsExcels
Excels
 
1. ms excel ung dung trong kinh te (phan i)
1. ms excel ung dung trong kinh te (phan i)1. ms excel ung dung trong kinh te (phan i)
1. ms excel ung dung trong kinh te (phan i)
 
Excel 2010 final
Excel 2010 finalExcel 2010 final
Excel 2010 final
 
Excel 2010 tutorial
Excel 2010 tutorialExcel 2010 tutorial
Excel 2010 tutorial
 
Excel 2010 final
Excel 2010 finalExcel 2010 final
Excel 2010 final
 
Bai thuc hanh 1 Lam quen voi chuong trinh bang tinh Excel.ppt
Bai thuc hanh 1 Lam quen voi chuong trinh bang tinh Excel.pptBai thuc hanh 1 Lam quen voi chuong trinh bang tinh Excel.ppt
Bai thuc hanh 1 Lam quen voi chuong trinh bang tinh Excel.ppt
 
Bai giang ve cac ham cua excel
Bai giang ve cac ham cua excelBai giang ve cac ham cua excel
Bai giang ve cac ham cua excel
 
106 thu thuat word
106 thu thuat word106 thu thuat word
106 thu thuat word
 
Ung dung excel trong kinh te
Ung dung excel trong kinh teUng dung excel trong kinh te
Ung dung excel trong kinh te
 
Ung dung ms excel trong kinh tế
Ung dung ms excel trong kinh tếUng dung ms excel trong kinh tế
Ung dung ms excel trong kinh tế
 
bai giang tin hoc dai cuong phan Excel full.ppt
bai giang tin hoc dai cuong phan Excel full.pptbai giang tin hoc dai cuong phan Excel full.ppt
bai giang tin hoc dai cuong phan Excel full.ppt
 
Phân tích dữ liệu thống kê
Phân tích dữ liệu thống kêPhân tích dữ liệu thống kê
Phân tích dữ liệu thống kê
 
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCELPHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
PHÂN TÍCH THỐNG KÊ SỬ DỤNG EXCEL
 

Plus de Sim Vit

Trinh dien bao_cao_bang_powerpoint_5464
Trinh dien bao_cao_bang_powerpoint_5464Trinh dien bao_cao_bang_powerpoint_5464
Trinh dien bao_cao_bang_powerpoint_5464
Sim Vit
 
Tin hoc ung dung
Tin hoc ung dungTin hoc ung dung
Tin hoc ung dung
Sim Vit
 
Ms word 2007_6506
Ms word 2007_6506Ms word 2007_6506
Ms word 2007_6506
Sim Vit
 
Huong dan office_2007_955_1869
Huong dan office_2007_955_1869Huong dan office_2007_955_1869
Huong dan office_2007_955_1869
Sim Vit
 
Hướng dẫn sử dụng c fosspeed
Hướng dẫn sử dụng c fosspeedHướng dẫn sử dụng c fosspeed
Hướng dẫn sử dụng c fosspeed
Sim Vit
 
Gt power point_nang_cao_0269
Gt power point_nang_cao_0269Gt power point_nang_cao_0269
Gt power point_nang_cao_0269
Sim Vit
 
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
Sim Vit
 
Giao trinh excel_2000_bai_4_3841
Giao trinh excel_2000_bai_4_3841Giao trinh excel_2000_bai_4_3841
Giao trinh excel_2000_bai_4_3841
Sim Vit
 
Excel 2007 0105
Excel 2007 0105Excel 2007 0105
Excel 2007 0105
Sim Vit
 
Chuong3 ham 2793
Chuong3 ham 2793Chuong3 ham 2793
Chuong3 ham 2793
Sim Vit
 
5596 bai tap_va_mot_so_dieu_ca
5596 bai tap_va_mot_so_dieu_ca5596 bai tap_va_mot_so_dieu_ca
5596 bai tap_va_mot_so_dieu_ca
Sim Vit
 

Plus de Sim Vit (11)

Trinh dien bao_cao_bang_powerpoint_5464
Trinh dien bao_cao_bang_powerpoint_5464Trinh dien bao_cao_bang_powerpoint_5464
Trinh dien bao_cao_bang_powerpoint_5464
 
Tin hoc ung dung
Tin hoc ung dungTin hoc ung dung
Tin hoc ung dung
 
Ms word 2007_6506
Ms word 2007_6506Ms word 2007_6506
Ms word 2007_6506
 
Huong dan office_2007_955_1869
Huong dan office_2007_955_1869Huong dan office_2007_955_1869
Huong dan office_2007_955_1869
 
Hướng dẫn sử dụng c fosspeed
Hướng dẫn sử dụng c fosspeedHướng dẫn sử dụng c fosspeed
Hướng dẫn sử dụng c fosspeed
 
Gt power point_nang_cao_0269
Gt power point_nang_cao_0269Gt power point_nang_cao_0269
Gt power point_nang_cao_0269
 
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
Giao trinh he_cac_chuong_trinh_ung_dung_windows_word_excel_2233
 
Giao trinh excel_2000_bai_4_3841
Giao trinh excel_2000_bai_4_3841Giao trinh excel_2000_bai_4_3841
Giao trinh excel_2000_bai_4_3841
 
Excel 2007 0105
Excel 2007 0105Excel 2007 0105
Excel 2007 0105
 
Chuong3 ham 2793
Chuong3 ham 2793Chuong3 ham 2793
Chuong3 ham 2793
 
5596 bai tap_va_mot_so_dieu_ca
5596 bai tap_va_mot_so_dieu_ca5596 bai tap_va_mot_so_dieu_ca
5596 bai tap_va_mot_so_dieu_ca
 

Nhung meo trong_excel_2438

  • 1. NH NG K NĂNG TÙY BI N B NG TÍNH EXCEL Nh ng m o nh v c u trúc m t b ng tính M t trong nh ng l i mà chúng ta hay m c ph i khi t o m t b ng tính, là chúng ta không thi t l p và trình bày d li u "theo cái cách mà Excel và các tính năng c a nó mong i". Sau ây là m t s l i ph bi n chúng ta hay m c ph i khi thi t l p m t b ng tính: • B trí d li u trong nhi u b ng tính (WorkBook) khác nhau • B trí d li u trong nhi u trang tính (WorkSheet) khác nhau • B trí d li u trong nhi u b ng (Table) khác nhau • Có nh ng hàng tr ng và c t tr ng trong kh i d li u (database) • B tr ng nh ng ô có d li u gi ng nhau (cùng chung m t ngày, cùng chung m t ơn v tính, v.v...) Ba i m u tiên trên ây ch mu n nói n m t i u: B n nên luôn luôn c g ng gi các m i liên quan gi a các d li u ư c liên t c trong cùng m t b ng d li u. Tôi ã th y r t nhi u các b ng tính không ư c trình bày theo cái quy t c r t ơn gi n này, và chính vì v y, các b ng tính ó không th t n d ng ư c t i a các tính năng m nh m c a Excel như PivotTable, SubTotal... B n ch có th s d ng các tính năng này khi b n gom h t d li u c a b n vào trong m t b ng th t ơn gi n. Không ph i ng u nhiên mà Excel có 1.048.567 hàng (65.536 hàng trong Excel 2003 tr v trư c) mà l i ch có 16.384 c t (256 c t trong Excel 2003 tr v trư c). i u này có ý nói r ng, b n nên thi t l p d li u c a mình v i các tiêu c t n m hàng trên cùng, và các d li u có liên quan thì n m liên t c bên dư i tiêu c a nó. N u như b n có nh ng d li u ư c l p l i hai l n ho c nhi u l n trong các hàng c a cùng m t c t (các ngày tháng, các lo i ơn v tính ch ng h n), b n hãy ch ng l i s cám d b tr ng các ô ó. Hãy c g ng s p x p (sort) d li u c a b n b t c khi nào có th . Excel có r t nhi u nh ng công c tìm ki m và tham chi u công th c, và m t s không nh trong ó, òi h i d li u ph i ư c s p x p theo m t th t h p lý. Vi c phân lo i cũng s giúp ích áng k cho t c x lý c a m t s các hàm. Nh ng m o nh khi nh d ng Ngoài vi c thi t k c u trúc c a b ng tính cho h p lý, vi c nh d ng cho nó cũng là m t v n c n bàn n. M c dù m t b ng tính nên ư c nh d ng sao cho d c và d theo dõi, nhưng chúng ta ít khi nghĩ n vi c s d ng th i gian cho có hi u qu . Hãy luôn luôn nh d ng th t ơn gi n. R t nhi u ngư i lãng phí th i gian vào vi c nh d ng m t b ng tính m c dù không nh t thi t ph i làm như v y, và chính i u này làm nh hư ng n hi u qu công vi c. Vi c thư ng xuyên áp d ng nh ng nh d ng ph c t p cho b ng tính còn làm cho nó tăng kích thư c, và cho dù b ng tính c a b n có th trông gi ng như m t tác ph m ngh thu t, nhưng nó l i có th là m t n i s hãi cho ngư i khác. M t trong nh ng ki u ph i màu t t nh t mà b n nên áp d ng cho m t b ng tính, là màu en, màu tr ng và màu xám. M t g i ý n a, là nên b tr ng vài hàng u tiên trên cùng (ít nh t là 3 hàng). Nh ng hàng này s ư c dùng cho nh ng tính năng nâng cao hơn v sau, ch ng h n như Advanced Filter, ho c dùng làm vùng i u ki n cho các công th c x lý d li u (DSUM, DMAX, v.v...) Cũng ng quan tâm n vi c canh l cho d li u. Theo m c nh, Excel canh ph i cho nh ng d li u ki u s , và canh trái cho nh ng d li u ki u text. Và ó là i u t t nh t r i, ng thay i nó. N u b n thay i ki u canh l , b n s có th không xác nh ư c ngay t c kh c r ng ó là d li u ki u s hay d li u ki u text; và nó còn có th gây nh m l n cho ngư i khác khi tham chi u n m t ô, vì nhi u khi h s tư ng r ng d li u trong ô ó là s , nhưng th t ra nó là text. N u b n thay i ki u canh l m c nh, b n s b nh c u v i nó sau này. Ch có tiêu c a b ng tính là ư c hư ng ngo i l mà thôi. Ch nh d ng các ô theo ki u text khi th t s c n thi t. B i vì t t c nh ng d li u nh p vào trong các ô ã ư c nh d ng trư c theo ki u text s b chuy n thành d li u ki u text, ngay c khi b n nghĩ r ng cái b n nh p
  • 2. vào là d li u ki u s hay d li u ki u ngày tháng. Và t i t hơn n a, b t kỳ ô nào ch a công th c tham chi u n m t ô ã ư c nh d ng theo ki u text, cũng s b nh d ng thành ki u text. Nói chung, b n âu có mu n nh ng ô ch a công th c l i b nh d ng theo ki u text, ph i không. Tr n các ô (merge cells) cũng là m t v n . Có m t s công th c ho c macro không th ch y ư c v i nh ng ô ã ư c tr n. Cho nên, thay vì tr n ô, b n hãy dùng ch c năng "Center across selection", n m trong Home ➝ nhóm Alignment. Nh n vào cái mũi tên dư i cùng bên ph i, s m ra h p tho i Format v i tab Alignment ư c ch n s n. B n s d ng thanh trư t d c c a khung Horizontal ch n Center Across Selection. Ho c b n cũng có th right-click r i ch n Format Cells t shortcut menu. V i Excel 2003 tr v trư c, b n m h p tho i này t menu Format ➝ Cells (Ctrl+1). Nên s d ng Center Across Selection thay cho Merge Cells Nh ng m o nh khi dùng công th c M t sai l m r t l n khi s d ng công th c là cho nó tham chi u n toàn b các c t trong m ng d li u. i u này làm cho Excel ph i ki m tra hàng ngàn ô, n u không nói là hàng tri u, ch c ch n không b sót m t d li u nào. Ví d , gi s b n có m t m ng d li u t A1 n H1000, và b n quy t nh s dùng nh ng hàm tìm ki m c a Excel trích ra nh ng d li u c n thi t. B i vì b n còn ph i b sung thêm d li u vào m ng này, nên ch c ăn, b n t o tham chi u trong công th c n toàn b các hàng c a các c t trong m ng này. Khi ó, tham chi u c a b n có th s là A:H, ho c c th hơn, là A1:H65536. B n nghĩ r ng làm như v y thì b n s không lo l ng gì khi thêm d li u vào trong m ng. ó là m t thói quen vô cùng tai h i mà b n ph i luôn tránh xa nó. B i nó s làm cho b ng tính tr nên ì ch, th m chí là không ch y n i. B n v n có th lo i b nh ng ph n không c n tham chi u ra kh i công th c, mà l i b o m ư c nh ng d li u m i thêm vào s t ng ư c c p nh t trong tham chi u c a công th c,
  • 3. b ng cách dùng Table (List trong Excel 2003 tr v trư c) ho c s d ng các Name ng. M t v n n a thư ng x y ra v i nh ng b ng tính l n, mà c u hình máy l i nh , là Excel tính toán r t ch m khi d li u ư c c p nh t. gi i quy t v n này, b n thư ng ư c khuyên là hãy chuy n i ch tính toán c a Excel thành d ng Manual: Nh n vào nút Office góc trái phía trên c a b ng tính, r i ch n Excel Options ➝ Formulas (v i Excel 2003 tr v trư c, ch n menu Tools ➝ Options ➝ Calculations), r i ch n Manual : Ch n Manual Caculation v i Excel 2007 Ch n Manual Caculation v i Excel 2003 Tuy nhiên, l i khuyên ó thì không hay cho l m, mà ch là mang tính i phó. M t b ng tính thì bao gi cũng có nh ng công th c tính toán, n u b n ang ch y m t b ng tính trong ch tính toán Manual, có th b n s ch
  • 4. có ư c nh ng thông tin cũ mèm, chưa h ư c c p nh t. N u mu n có ư c thông tin chính xác, b n ph i nh n F9. Nhưng, ch c ch n là không ph i lúc nào b n cũng nh i u này! V y b n th cân nh c xem: N u như c n th ng chân b k t và làm cho chi c xe hơi c a b n ch y ch m l i, b n s s a l i c n th ng chân, hay là g b cái th ng chân r i tin tư ng hoàn toàn vào cái th ng tay? Nghĩa là, khi b ng tính c a b n ch y ch m, b n s s a l i công th c cho nó ch y nhanh hơn, hay là t nó vào ch tính toán b ng tay r i c th mà làm ti p? H u như chúng tôi không bao gi làm i u này, nhưng r t nhi u ngư i ã không ng n ng i t b ng tính c a h trong ch tính toán Manual. N u như b n th y r ng c n ph i t b ng tính c a mình trong ch tính toán Manual thì m i làm vi c ư c, b n nên suy nghĩ n vi c thi t k l i b ng tính. Công th c m ng là m t trong nh ng nguyên nhân c a v n trên. Chúng là m t l a ch n t t khi tham chi u n nh ng ô riêng l . Nhưng n u b n dùng chúng tham chi u n nh ng dãy d li u l n, thì hãy s d ng chúng càng ít càng t t. Khi có m t s lư ng l n các m ng tham chi u n m t dãy d li u l n, hi u su t c a b ng tính s b nh hư ng, ôi khi nó d ng h n luôn, và b n b t bu c ph i dùng ch tính toán b ng tay. Excel có nhi u hàm chuyên x lý nh ng d li u l n thay cho công th c m ng, mà s ư c c p n trong chiêu th 79: Tránh l i #VALUE! khi tính t ng (SUM) ho c m (COUNT) các ô. Ngoài ra, trong Excel Help có m t s ví d r t hay s giúp b n cách dùng công th c trên nh ng b ng d li u l n trích ra k t qu d a theo nh ng tiêu chu n. Ho c b n có th s d ng Pivot Table, s ư c c p n trong ph n th 4 c a lo t bài này. M c dù PivotTable thì có v ph c t p khi b n s d ng nó l n u tiên, nhưng chúng tôi thành th t khuyên b n hãy h c cách s d ng nó. M t khi b n ã làm ch ư c PivotTable, ngày nào ó b n s t h i r ng làm sao tôi có th s ng mà không có PivotTable! Tùy bi n c a s làm vi c c a b ng tính Excel cho phép hi n th ng th i nhi u b ng tính và cho phép tùy bi n cách hi n th và s p x p chúng. Sau khi thi t l p các tùy bi n, chúng ta có th lưu thành m t t p tin workspace (không gian làm vi c) .xlw s d ng l i sau này. ôi khi khi làm vi c trong Excel, b n có th c n ph i có nhi u hơn m t workbook m trên màn hình c a b n làm cho nó d dàng s d ng hơn hay xem d li u t nhi u b ng tính. Trong bài này s mô t cách th c hi n t ch c c a s làm vi c m t cách g n gàn và có t ch c. u tiên, b n hãy m t t c các b ng tính mà b n c n làm vi c: Vào Office | Open…, gi phím Ctrl trong khi ch n các t p tin b ng tính c n m | nh n nút Open m các t p tin. (E2003: File | Open...). T c a s làm vi c c a m t b ng tính ang m nào ó, ch n Windows | View | Arrange All (E2003: Window | Arrange). N u tùy ch n “Windows of active workbook” ang ư c ch n thì hãy b ch n, sau ó ch n ki u s p x p và nh p nút OK.
  • 5. N u ch n ki u s p x p Tiled (lát g ch) thì các c a s làm vi c c a b ng tính như hình sau: N u ch n ki u s p x p Horizontal (n m ngang) thì các b ng tính s x p ch ng lên nhau như hình minh h a sau: N u ch n ki u Vertical (th ng ng) thì các b ng tính ư c s p x p n m c nh nhau như sau:
  • 6. N u ch n ki u Cascade (thác nư c) thì các b ng tính s x p è lên nhau như hình minh h a sau Khi các c a s b ng tính ã ư c s p x p g n gàng, b n s r t d dàng thao tác và di chuy n d li u gi a các c a s . s d ng l i các thi t l p này sau này, b n có th lưu thành m t t p tin workspace. Các bư c th c hi n như sau:
  • 7. Ch n ngăn View | t i nhóm Window ch n Save Workspace (E2003: File | Save Workspace…) | nh p tên cho workspace t i h p File Name, ch n nơi lưu và nh n nút OK. T p tin workspace s có ph n m r ng là .xlw Mu n chuy n i m t b ng tính nào ó v ch toàn màn hình thì b n ch c n kích chu t hai l n lên thanh Title (tiêu ) c a c a s b ng tính ó. B n cũng có th nh n nút Maximize trên c a s b ng tính hi n hành phóng to c a s ho c nh n nút Close óng b ng tính sau khi ã hoàn t t công vi c v i c a s ó. s d ng l i không gian làm vi c ã thi t l p trư c ó, b n ch c n m t p tin .xlw v a t o thì giao di n làm vi c ư c b n thi t l p trư c kia s ư c khôi ph c. T t c các hi u ch nh hay c p nh t thông tin trong các b ng tính c a workspace s ư c Excel nh c nh b n lưu l i khi b n ra l nh óng workspace. N u m i ngày, b n u ph i th c hi n các công vi c l p i l p l i trên nhi u b ng tính. Tôi khuyên b n nên dành m t ít th i gian thi t l p các ki u không gian làm vi c cho các b ng tính ó tùy thu c vào yêu c u tao tác và x lý s li u c a chúng. Sau ó, b n ch vi c m t p tin .xlw cho ki u không gian làm vi c phù h p v i nhu c u s d ng c a b n mà không c n ph i t n th i gian s p x p, t ch c các b ng tính các l n s d ng sau. Nh p d li u ng th i vào nhi u sheet. Thông thư ng ngư i dùng Excel có nh ng d li u mu n nh p vào nhi u sheet khác nhau. B n có th dùng công c Group các sheet l i có th nh p d li u ng th i. Nhưng cũng có 1 cách khác nhanh chóng và linh ho t hơn n u b n dùng vài dòng l nh VBA. Nhưng ph i nói n công c Group cái ã nh ? Công c Group dùng nh p d li u vào nhi u sheet 1 lúc ch c có nhi u ngư i chưa dùng n. Nó dùng k t n i các sheets v i nhau trong ph m vi work book. 1. Group các sheet l i b ng tay: nhóm các sheet l i, các b n ch vi c click ch n sheet th nh t, nơi b n s nh p li u t bàn phím vào, r i v a nh n Ctrl, v a nh n vào tên nh ng sheet khác mà b n mu n nh p li u ng th i. Khi b n gõ b t kỳ cái gì vào sheet hi n hành, d li u ó cũng s t ng nh p vào các sheet còn l i trong nhóm. i p v hoàn t t nhanh chóng (nghe gi ng 007 nh ). thoát kh i tình tr ng group, b n ch vi c ho c click ch n 1 sheet khác ngoài nhóm, ho c click chu t ph i lên tên 1 sheet trong nhómb t kỳ, ch n Ungroup Sheets. Ho n n u b n ch mu n g 1 trong s các sheet ra kh i nhóm, hãy Ctrl click vào tên sheet ó. Khi 2 hay nhi u sheet Group v i nhau, trên thanh tiêu c a Windows s có ch [Group] (tronh ngo c vuông). Nhìn vào ó b n có th bi t b n v n còn ang trong tình tr ng group các sheets.
  • 8. Tr khi b n có c p m t s c như chim ưng, ho c bén như dao c o, thư ng thì b n không ý n d u hi u này, b n s quên và không ungroup khi công vi c ã xong. Chính vì th tôi khuyên b n ngay khi th c hi n xong thao tác nh p li u hàng lo t vào các sheet, ph i ungroup chúng ngay. Dù phương pháp này là d nh t, nhưng có nghĩa là b n ph i nh và nh group và ungoup khi c n, n u không b n s vô tình ghi è lên d li u nh ng sheet mà b n không nhìn th y trên màn hình hi n th i. Thí d như b n ch mu n ghi cùng lúc d li u vào 1 vùng nào ó c a các b ng tính, còn ngoài vùng ó thì d li u các sheet ph i khác nhau. Th nhưng khi các sheet ã group r i thì nó có thèm quan tâm b n ang nh p li u vùng nào âu? 2. Group các sheet l i 1 cách t ng: B n có th gi i quy t v n trên b ng cách dùng 1 o n code VBA h t s c ơn gi n. o n code làm vi c ư c, nó ph i ư c t trong các s ki n c a riêng sheet nào b n mu n. vào trang so n th o code c a sheet nào, thì click ph i chu t vào tên sheet ó và ch n View Code. B n có th ch n 1 trong các s ki n c a sheet, nh ng s ki n ch liên quan n sheet ó như i ô ch n, thay i n i dung 1 ô, kích ho t sheet, thoát kh i sheet, … th c thi o n code VBA c a mình. Thư ng thì b n ư c ưa th ng n trang so n th o code riêng c a sheet n u b n ch n View Code như trên hư ng d n. B n có th ki m tra l i qu th c nó thu c v sheet b n ch n hay không b ng cách nhìn vào c a s VBA Project bên trái, n u b n th y d ng thư m c This Workbook – Sheetname và 1 sheet ang ch n thì úng. n u không b n ph i tìm úng sheet b n c n và doubled click nó. Trư c tiên b n ph i t name cho vùng ô b n mu n nh p d li u trùng trong các sheet, gi s là “MyRange”. Sau ó gõ o n code này vào khung so n th o bên ph i: PHP Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("MyRange"), Target) Is Nothing Then Sheets(Array("Sheet5", "Sheet3", "Sheet1")).Select Else Me.Select End If End Sub Trong o n code trên, sheet5 ư c ghi u tiên trong m ng Array, vì b n mu n nó là sheet mà b n s gõ d li u nh p vào. B n có th ch n nh ng sheet khác group chúng l i bên dư i sheet5. Sau khi gõ code xong, ho c nh n nút View Object, ho c nh n nút View Microsoft Excel, ho c nh n Alt- Q, Alt-F11 ho c óng h n c a s VBA tr v màn hình Excel. Lưu b ng tính l i.
  • 9. C n nh c l i r ng o n code trên ph i n m trong sheet ư c khai báo u tiên c a Array, là sheet mà b n s nh p d li u t bàn phím. Khi b n ã hoàn t t, m i khi b n click ch n 1 ô nào ó trong sheet5, o n code s ki m tra xem ô b n ch n có n m trong vùng ã t tên “MyRange” không. N u úng, code s Group các sheet l i v i nhau b n nh p d li u hàng lo t sheets. N u không ph i, nó ungroup chúng ra b ng cách ơn gi n là kích ho t sheet hi n hành. Dùng o n code trên s ti n l i ch nó gi i phóng b n kh i cái vi c ph i nh Group khi b t u và UnGroup khi k t thúc nh p li u trong vùng ch n. Bây gi n u b n mu n nh ng d li u như nhau ư c nh p vào các sheet ch n, nhưng nh ng v trí khác nhau, hãy dùng o n code khác: PHP Code: Private Sub worksheet_Change(ByVal Target As Range) If Not Intersect(Range("MyRange"), Target) Is Nothing Then With Range("MyRange") .Copy Destination:=Sheets("Sheet3").Range("A1") .Copy Destination:=Sheets("Sheet1").Range("D10") End With End If End Sub o n code này cũng ph i ư c t trong khung so n th o c a riêng sheet5. o n code này ho t ng khác v i o n code trên. Khi b n thay i n i dung c a 1 ô nào ó, code s xác nh xem ô hi n hành có n m trong vùng "MyRange" hay không, n u ph i thì copy nguyên vùng "MyRange" (c a sheet5) và paste vào ng th i ô A1 c a sheet1 và D10 c a sheet2. Ngư c l i thì không làm gì c . Ngăn ch n ngư i s d ng th c hi n m t s hành ng nào ó nh t nh M c dù Excel có h tr vi c b o v cho b ng tính (Protect Sheet, Protect Workbook), nhưng công c thô sơ này không bao g m vi c ch cho phép ngư i s d ng m t s c quy n h n ch - tr khi b n làm theo nh ng chiêu sau ây. B n có th qu n lý vi c tương tác v i các b ng tính c a b n b ng cách giám sát và áp ng các s ki n. Các s
  • 10. ki n (event), là nh ng hành ng x y ra khi b n làm vi c v i các b ng tính ho c các Sheet. Nh ng s ki n này thư ng bao g m vi c m (open) m t b ng tính, lưu (save) nó, và óng (close) nó. B n có th b o Excel ch y nh ng mã Visual Basic (macro) m t cách t ng khi x y ra b t kỳ m t trong nh ng s ki n như th . Tuy nhiên, b n nên bi t r ng, ngư i s d ng có th vư t qua t t c nh ng mã b o v b i Visual Basic b ng cách vô hi u hóa vi c th c thi các macro: Nh n nút Office ➝ Excel Opions ➝ Trust Center ➝ Trust Center Setting ➝ Macro Settings [E2003: Tools | Macro | Security]. N u t m c an toàn là Disable all macros with notification [E2003: m c Medium], m i khi m m t b ng tính có ch a macro, Excel s xu t hi n m t h p thông báo và cho phép ngư i s d ng có cơ h i t t các macro. N u t m c an toàn là Disable all macros without notification [E2003: m c High], Excel s ngăn không cho ch y t t c các macro có trong b ng tính. Nói cách khác, khi c n ph i dùng các macro có trong b ng tính, ngư i s d ng s ch n m t m c an toàn thích h p cho phép s d ng các macro. Ngăn ch n vi c lưu l i b ng tính v i m t tên khác B n có th thi t l p thu c tính "Read only" cho b t kỳ m t b ng tính nào, b ng cách nh n Office ➝ Save, nh n nút Tools, ch n General Options [E2003: File | Save As | Tools | General Options] và kích ho t h p ki m Read only recommended. Vi c này ngăn ch n ngư i s d ng lưu l i nh ng thay i trên b ng tính, tr phi h lưu l i b ng tính v i m t tên khác ho c lưu vào m t nơi khác. Tuy nhiên, có th i u b n mu n là không cho lưu l i b ng tính c a b n v i tên khác, cũng không cho lưu vào m t nơi khác. Nói cách khác, b n mu n ngư i khác ch có th lưu l i b ng tính này v i chính tên g c c a nó, ch không ư c sao chép nó. i u này c bi t h u d ng khi có nhi u ngư i cùng s d ng chung m t b ng tính, và b n không mu n trong c ng c a mình y d y nh ng b n sao c a b ng tính này, cho dù là v i m t tên khác, hay m t thư m c khác. S ki n Before Save mà tôi s p nói n ã có t th i Excel 97. úng như tên g i c a nó, s ki n này ch xu t hi n ngay trư c khi b ng tính ư c lưu, cho phép b n can thi p k p th i vi c lưu l i b ng tính, ưa ra m t c nh báo, và không cho Excel lưu b ng tính. Trư c khi t th c hi n i u này vào b ng tính, hãy ch n ch n r ng b n ã lưu l i b ng tính c a b n. B i vì vi c ưa o n code sau ây vào môt b ng tính chưa ư c lưu, có th s gây cho b n nhi u r c r i. ưa o n code sau vào b ng tính, b n hãy ch n Develope ➝ Visual Basic (ho c nh n Alt+F11), và nh p úp chu t vào m c ThisWorkbook trong khung Project Explorer. N u trên Ribbon c a b n không có m c Develope, b n hãy vào trong Excel Options ➝ Popular, ánh d u vào tùy ch n Show Develope tab in the Ribbon, r i nh n OK. [E2003, nh n ph i chu t vào bi u tư ng Excel ngay bên trái menu File trên thanh menu, và ch n m c View Code, như minh h a hình bên dư i]: S d ng Quick access menu (trong Excel 2003) nh p code áp d ng cho workbook
  • 11. B n hãy nh p o n code sau ây vào c a s VBE. Sau khi nh p xong, nh n Alt+Q tr v Excel, r i lưu l i b ng tính: PHP Code: Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) Dim lReply As Long If SaveAsUI = True Then lReply = MsgBox("Sorry, you are not allowed to save this workbook as another name." _ & "Do you wish to save this workbook?", vbQuestion + vbOKCancel) Cancel = (lReply = vbCancel) If Cancel = False Then Me.Save Cancel = True End If End Sub Th m t tí. B n nh n Ctrl+S (ho c g i l nh Save) xem. B ng tính c a b n lưu bình thư ng. Bây gi b n nh n F12 (ho c g i l nh Save as), b n s g p m t c nh báo, nói r ng b n không th lưu l i b ng tính này dư i b t kỳ m t tên nào khác, tr phi b n vô hi u hóa các macro. Nói thêm, khi b n lưu m t b ng tính có ch a macro ho c code trong Excel 2007, b n s ư c nh c nh r ng b n ph i lưu file d ng cho phép macro ho t ng (macro-enable workbook), có ph n m r ng là *.xlsm, ch không th lưu d ng bình thư ng (*.xlsx). Ngăn ch n vi c in m t b ng tính ôi khi b n ph i r i bàn làm vi c i âu ó mà quên t t máy (chuy n này là chuy n thư ng), cho dù b n ã làm công vi c ngăn ch n vi c có ai ó chép b ng tính c a b n ra ngoài, như ã nói trên, có th b n còn lo xa hơn,
  • 12. mu n r ng b ng tính này cũng s không b in ra khi b n v ng m t. N u th t s b n mu n như v y, b n hãy dùng s ki n Before Print. Hãy nh p o n code sau trong c a s VBE: PHP Code: Private Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox "Sorry, you cannot Print from this workbook", vbInformation End Sub Nh n Ctrl+Q quay v Excel và lưu l i. T bây gi , n u có ai có mu n ra l nh in b ng tính này, s không có gì x y ra. Dòng l nh MsgBox o n code trên ch là m t tùy ch n, nhưng b n nên s d ng nó, vì ít nh t thì nó cũng l i m t thông tin gì ó, ngư i khác s không tư ng l m r ng máy in c a h b hư, ho c là chương trình Excel có l i! N u b n ch mu n ngăn ch n in m t ph n nào ó trong b ng tính, ví d không cho in Sheet1 và Sheet2, b n s d ng o n code sau: PHP Code: Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheet.Name Case "Sheet1", "Sheet2" Cancel = True MsgBox "Sorry, you cannot print this sheet from this workbook", _ vbInformation End Select End Sub Dĩ nhiên b n có th thêm vào b t kỳ Sheet nào có trong b ng tính c a b n. Ch vi c nh p tên c a nó vào trong hàng có l nh Case, và tách bi t Sheet này v i Sheet khác b ng d u ph y, và nh nh p tên Sheet trong m t c p d u nháy kép. Trong trư ng h p b n ch mu n ngăn ch n không cho in m t Sheet mà thôi, b n ch c n nh p tên c a Sheet ó (trong c p nháy kép) sau ch Case, và không c n gõ d u ph y. Ngăn ch n vi c chèn thêm Sheet vào m t b ng tính Excel có ch c năng Protect Workbook, không cho phép thay i c u trúc c a b ng tính như thêm, xóa, di chuy n, hay i tên các Sheet. Tuy nhiên, có th b n ch mu n ngăn ch n vi c thêm Sheet thôi, còn nh ng vi c khác thì v n cho phép. o n code sau ây giúp b n làm vi c ó: PHP Code: Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False MsgBox "Sorry, you cannot add any more sheets to this workbook", _ vbInformation Sh.Delete Application.DisplayAlerts = True End Sub Khi có ai ó chèn thêm m t Sheet m i vào trong b ng tính, trư c tiên Excel s xu t hi n h p c nh cáo: "Xin l i, b n không th thêm b t kỳ Sheet nào vào trong b ng tính này", r i ngay l p t c, Excel s xóa cái Sheet m i thêm vào khi nút OK trong h p c nh báo ư c nh n. Công d ng c a dòng l nh Application.DisplayAlerts = False là không hi n th h p c nh báo xác nh n vi c xóa m t Sheet nào ó trong Excel. M t cách khác ngăn ch n vi c chèn thêm Sheet vào b ng tính là b n ch n Review trên thanh Ribbon, ch n l nh Protect Workbook trong nhóm Changes, r i ch n l nh Protect Structure and Windows [E2003: Tools | Protection | Protect Workbook... ánh d u ki m vào tùy ch n Structure] và nh n OK (có th t password n u thích). Tuy nhiên, như ã nói u bài, vi c này s ngăn ch n h t m i thao tác v i các Sheet trong b ng tính.
  • 13. Ngăn ch n các nh c nh không c n thi t Exel luôn luôn c nh báo ho c nh c nh b n xác nh n các hành ng và thao tác c a b n. Bài này s hư ng d n b n cách lo i b các thông báo ho c nh c nh . Các ki u c nh báo mà tôi c p ây chính là các câu h i mà Excel h i b n có cho macro ho t ng hay không ho c là các thông báo v các hành ng xóa m t trang b ng tính. Sau ây là m t s lo i c nh báo c a Excel: Thông báo kích ho t Macro trong khi trong workbook không có macro L i này phát sinh do b n ã t ng th c hi n ghi macro trong workbook, và m c dù b n ã xóa t t c các mã l nh macro nhưng trong các l n m workbook sau ó Excel v n c nh báo b n là trong workbook có ch a macro. • Xóa macro: vào ngăn Developer | ch n Macro | ch n các macro và nh n Delete xóa [E2003: Tools | Macro | Macros]. • B n ch nh n ư c thông báo kích ho t macro khi thi t l p m c an toàn là “Disable all macro with notification” [E2003: m c Medium]. • N u m c an toàn ư c thi t l p là “Enable all macors” [E2003: m c Low] thì các macro s t ng kích ho t mà không có ti ng kêu c nh báo. • N u m c an toàn là “ Disable all macros without notification” [E2003: m c High] thì các macro t ng b khóa l i không ư c phép th c thi. Khi b n ghi m t macro, Excel chèn m t module vào ch a các l nh c a b n và các hàm. Vào lúc m m t b ng tính, Excel ki m tra xem b ng tính có ch a module nào không và chúng r ng hay ang ch a các mã l nh. Vi c xóa các macro c a b ng tính s xóa t t c các mã l nh ch a bên trong module mà không xóa các module – gi ng như vi c u ng c n lon s a và b l i v h p s a vào l i t l nh. Do v y, b n c n ph i xóa i các module này theo hư ng d n sau Ch n ngăn Developer | ch n nút Visual Basic t i nhóm Code ho c nh n t h p phím ALT+F11 [E2003: Tools | Macro | Visual Basic Editor (VBE) và ch n View | Project Explorer]. Các nút l nh trên ngăn Developer N u không th y c a s Project thì b n vào View và ch n Project Explorer ho c nh n t h p phím Ctrl+R C a s Project Explorer
  • 14. Nh p chu t lên các ký hi u (+) xem các thánh ph n b n c a các nhánh con trong c a s Project và hãy tìm n các module. B n nh p ph i chu t lên t ng module và ch n l nh Remove Module t th c ơn ng c nh. N u ư c h i có xu t module ra thành t p tin thì hãy ch n No. Nh n t h p ALT+Q óng c a s VBE. Thông báo nh c nh lưu tr trong khi không có s thay i nào B n có th nh n th y r ng ôi khi b n ch m m t b ng tính và xem m t s thông tin trong ó mà Excel cũng nh c nh b n lưu l i các thay i trong Personal Macro Workbook m c dù b n không h thay i gì trong ó. Có th b n ã bi t ho c chưa, b n ã có s d ng m t hàm volatile (là hàm trong ó có s d ng phương th c volatile) trong Personal Macro Workbook c a mình. M t personal macro workbook là m t b ng tính n ư c t o l n u tiên b n ghi macro (Tools | Macro | Record NewMacro) v i tùy ch n “Personal Macro Workbook” t i “Store Macro in”. Macro này s ư c m m i khi b n s d ng Excel. M t hàm volatile s làm b ng tính t ng tính toán l i m i khi b n th c hi n m t thao tác nào ó trong Excel, bao g m c vi c m và óng b ng tính ho c ng d ng Excel. Hai trong s các hàm volatile ph bi n là hàm Today() và Now(). H p tho i Record Macro Vì th , m c dù b n ch c ch n là mình không có thay i gì trong b ng tính nhưng các hàm volatile này v n ang ho t ng âm th m. i u này ư c tính như là m t s thay i và Excel s c nh báo vi c lưu tr m c dù không t n t i b t kỳ s thay i nào trong b ng tính. N u b n mu n Excel d ng vi c thông báo lưu tr các thay i mà b n không h th c hi n, b n có m t vài cách th c hi n. Cách d th y nh t là ta không lưu các hàm volatile trong Personal Macro Workbook và nên xóa b t t c các hàm volatile ang có trong ó. Ho c, n u b n c n các hàm volatile nhưng không mu n Excel lưu l i các thay i không nhìn th y này b n có th thêm o n code sau vào Workbook module c a Personal Macro Workbook ánh l a nó là b ng tính ã ư c lưu r i. PHP Code: Private Sub Workbook_BeforeClose(Cancel As Boolean) Me.Saved = True End Sub m Personal Macro Workbook b n vào View | Unhide trong nhóm Window [E2003: Window | Unhide], ch n Personal.xls t h p tho i Unhide và nh p nút OK. Nh n t h p phím ALT+F11 vào c a s VBE, sau ó nh p ph i chu t lên ThisWorkbook t Personal.xls trong c a s Project r i ch n View Code và nh p o n mã trên vào. Sau khi nh p xong, b n nh n t h p phím ALT+Q óng c a s VBE l i.
  • 15. T t nhiên, n u b n có s d ng hàm volatile tính toán l i b ng tính và b n mu n lưu các thay i này thì b n dùng o n mã sau thay cho o n mã nêu trên. PHP Code: Private Sub Workbook_BeforeClose(Cancel As Boolean) Me.Save End Sub o n mã trên s lưu l i Personal Macro Workbook m t cách t ng m i khi nó ư c m . D ng các c nh báo c a Excel v các macro ã ghi M t trong s nhi u h n ch c a vi c ghi macro là không t thêm vào các l nh lo i b các thông báo khi th c thi. Ví d như b n ghi m t macro xóa m t worksheet và khi th c thi macro này b n s nh n ư c thông báo xác nh n vi c xóa worksheet. Mu n t t c nh báo này, b n làm như hư ng d n sau: Ch n ngăn Developer | Macros t i nhóm Code ho c nh n ALT+F8 [E2003: Tools | Macro | Macros] g i h p tho i Macro. T i Macro in ch n “All Open Workbooks”, ch n tên macro mà b n v a ghi và nh n nút Edit. t con tr lên trư c dòng l nh u tiên c a th t c và nh p vào dòng l nh sau: Application.DisplayAlerts = False T i sau dòng l nh cu i cùng, b n thêm vào: Application.DisplayAlerts = True Macro c a b n sau khi thêm 2 dòng l nh trên s gi ng như sau: PHP Code: Sub MyMacro( ) ' ' MyMacro Macro Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub Lưu ý r ng, b n ã b t ch c năng c nh báo c a Excel l i t i dòng l nh cu i cùng c a macro. N u b dòng l nh này, b n s không bao gi nh n ư c các c nh báo n a và i u này có th gây nguy h i vì có th b n vô tình th c hi n m t thao tác nh m l n nghiêm tr ng nào ó mà không h nh n ư c c nh báo xác nh n hành ng. n sheet sao cho ngư i dùng không th dùng l nh unhide hi n ra ôi khi b n có nh ng thông tin trên 1 sheet nào ó và b n không mu n ngư i dùng c ư c. B n mu n có 1 khu v c (có th là 1 sheet) ghi chép nh ng d li u, công th c, nh ng chi ti t v n v t và không mu n cho ai nhìn th y. Thí d như 1 sheet ch a nh ng vùng làm d li u cho Data Validation, Combobox, nh ng tên bi n và giá tr bi n dùng làm const trong VBA, nh ng thông tin nh y c m và nh ng th khác. M c dù b n có th d u sheet ó b ng cách ch n View ➝Hide trong m c ch n Window ( i v i Excel 2003 là Format ➝Sheet ➝Hide), nhưng s t t hơn n u b n làm cách khác ngư i dùng không th ch n View ➝ Unhide trong m c ch n Window ( i
  • 16. v i Excel 2003 là Format ➝Sheet ➝ Unhide). B n cũng có th dùng ch c năng khoá b ng tính, nhưng nó v n ư c nhìn th y. Hơn n a b n không th khoá nh ng ô ch a d li u k t n i v i nh ng control t o b i thanh công c Form. Thay vì v y, b n hãy thi t l p tr ng thái cho sheet d ng xlVeryHidden. Vào Developer ➝Visual Basic ho c nh n Alt-F11 vào trang so n th o VBE ( i v i Excel 2003 thì vào menu Tools ➝Macro ➝Visual Basic Editor và nhìn bên trái trong khung Project Explorer, n u không th y thì ch n View - Project Explorer. Tìm tên file và b m vào d u c ng hi n ra các tên sheet. Ch n tên sgeet nào b n mu n d u, m khung Property b ng cách vào menu View – Property Window (ho c nh n F4). Ch n tab Alphabetic, tìm dòng Visible và ch n 2- xlsSheetVeryHidden. Nh n Alt-Q tr v trang tính Excel, lưu s thay i này. Sheet c a b n s ch ng bao gi có th th y ư c b ng cách thông thư ng trên menu View – Unhide hay Format – Sgeet – Unhide. th y tr l i, b n ph i vào ch cũ, ch n l i -1 – xlSheetVisible
  • 17. T thi t k m t b ng tính m u (template) N u như b n thư ng xuyên ph i th c hi n cùng m t ki u trình bày cho b ng tính c a mình, b n có th t thi t k ra m t b ng tính m u cho riêng b n, là m t b ng tính ã có s n tiêu , m t s c t, m t s hàng nào ó, th m chí là c Name và công th c; ng th i còn có th t o ra m t h p tho i riêng vào trong Thư vi n các Templates c a Excel. Không bi t là, có khi nào b n s d ng các Template không? Nghĩa là thay vì nh n Ctrl+N t o m t b ng tính m i, thì b n nh n vào nút Office, ch n l nh New [E2003: File | New], và ch n ra m t ki u b ng tính ã ư c thi t k s n trong thư vi n các Template, sau ó s a l i b ng tính này thành cái c a mình?
  • 18. Ch n m t b ng tính ã ư c thi t k s n trong thư vi n Templates c a Excel N u b n ã t ng th y, ã t ng s d ng nh ng b ng tính ã ươc thi t k s n này, t b n s th y s h u d ng c a nó, nh nó mà chúng ta ti t ki m ư c bao nhiêu là th i gian cho vi c thi t k và trình bày. Và, trong công vi c, n u như b n c ph i thư ng xuyên thi t k nh ng b ng tính có c u trúc gi ng nhau, tôi nghĩ r ng vi c b n thư ng làm là m m t b ng tính ã có, xóa i ph n n i dung và lưu l i v i tên khác, ph i không? Nhưng cách làm này, ôi khi do sơ ý, b n s xóa luôn c nh ng công th c mà b n ã m t hàng gi nghĩ ra, r i ph i m t th i gian cho nh ng thao tác xóa... V y, có bao gi b n nghĩ n chuy n s làm m t cái gi ng như nh ng Template có s n c a Excel không? m i khi c n lo i m t b ng tính nào ó (m t b ng lương, m t b ng ch m công, m t b n báo giá, v.v...) thì b n ch vi c vào trong Thư vi n Templates, th m chí là vào trong "Thư vi n riêng" c a b n, l y m t cái m u ra r i ch vi c nh p s li u vào? Ti t ki m ư c bao nhiêu là th i gian. Chiêu th 6 này s giúp b n th c hi n i u tôi v a nói. T o m t b ng tính m u Nh ng Template cho phép b n có s n m t "d án" (project), có nghĩa là b n s có s n môt b ng tính, bao g m ph n tiêu c a b ng tính, m t s hàng và c t v i các tiêu c a nó, các công th c, và c các Name (n u có).. Ví d , ây là Template BillingStatement1 có s n trong Excel 2007:
  • 19. Template BillingStatement1 có s n trong Excel 2007 B n cũng có th t o ra m t cái gi ng v y, sau ó lưu l i thành m t Template. Vi c này không có gì khó. B n m m t b ng tính m i, t o ra m t cái sư n: tô màu, nh d ng, t Name, thi t k công th c, v.v... như bình thư ng b n v n làm, nhưng khoan nh p d li u vào. B n hãy xóa h t các Sheet không c n thi t, ch gi l i nh ng Sheet ã ư c thi t k thôi. Ho c b n có th m m t b ng tính ã có s n, xóa h t nh ng d li u thô, ch gi l i ph n trình bày. Sau ó, b n nh n F12 (Save as...) r i ch n Excel Template:
  • 20. Ch n lo i file là Excel Template trong c a s Save B n hãy t cho nó m t cái tên d nh , r i nh n Save. Theo m c nh thì Excel s lưu b ng tính m u này vào Thư m c ch a các Template ã ư c t o ra khi b n cài t Excel 2007: Excel s t ng ch n thư m c lưu các Template M i khi c n s d ng m t b ng tính có c u trúc y h t b ng tính b n v a lưu v i d ng Template như trên, b n nh n nút Office ➝ New [E2003: File | New], r i ch n ti p My Templates... c a s New Workbook:
  • 21. Ch n My Template m các b ng tính m u ã lưu Các b ng tính m u mà b n ã t o ra và lưu l i như tôi ã trình bày trên, s hi n ra. B n ch vi c ch n m u b n c n, r i nh n OK. Excel s t ng ch n thư m c lưu các Template
  • 22. T o m t tab riêng trong c a s My Templates Như b n ã th y hình ngay phía trên ây, khi b n nh n My Templates trong c a s New Workbook, m t c a s New s m ra. ý m t tí, b n s th y c a s này có d ng nh ng cái tab. Nhưng hi n gi nó ch nó m i m t tab My Templates thôi. Gi s b n ã t o ra r t nhi u b ng tính m u, thay vì "nhét" t t c vào m t ch , b n có mu n t o thêm nh ng tab riêng cho m i lo i m u không? Ví d , tab "Báo cáo thu ", tab "Báo giá", v.v... hay i lo i như th ? Khi b n nh n F12 lưu l i v i d ng Template như tôi ã trình bày ph n trên, thì thay vì Excel ch n thư m c lưu t ng, b n hãy nh n nút Create New Folder: Nh n nút Create New Folder t o thêm tab cho các Template M t h p tho i s m ra, và b n nh p m t cái tên cho nhóm bi u m u mà b n mu n. ây, tôi t o thêm m t nhóm là "Báo cáo thu " lưu nh ng b ng tính s dùng in ra các báo cáo n p cho cơ quan thu , nh n OK, t tên cho Template, và nh n Save. V y là xong r i ó. Tôi m th ra cho b n xem nhé: B n th y không, trong c a s New này, ã có thêm m t tab m i là "Báo cáo thu ". Hay ch nh !
  • 23. M t i u lưu ý, ch c là không th a. T t c nh ng Template và nh ng thư m c mà b n ã t t o ra trong bài này, u n m ây: C:Documents and SettingsOwnerApplication DataMicrosoftTemplate V i Owner là tên c a Acount mà b n ã t o ra khi s d ng Windows. Tôi ã th thay i nơi lưu các Template này, nhưng không ư c. Khi ch n My Template trong c a s New Workbook, Excel ch li t kê nh ng Template nào n m trong cái ư ng d n trên ây mà thôi. Do ó, khi cài t l i Windows, có th b n s m t h t t t c nh ng gì n m trong thư m c C:Documents and Settings... V y, i u lưu ý ây là, b n nên t o ra nh ng b n sao d phòng cho các Template này, c t gi c n th n. Sau này, khi có ph i cài t l i Windows, b n ch vi c chép các b n sao vào úng ch c a nó (chính là cái ư ng d n trên ây), là có th s d ng ti p. T o ch m c cho các Sheet trong Workbook N u b n ã t n quá nhi u th i gian trong m t workbook (b ng tính) v i r t nhi u worksheet (trang tính), b n s c m thông ư c s khó khăn trong vi c tìm ki m m t trang tính nào ó. Khi ó, có l ta nên l p m t ch m c các trang tính ang có thu n ti n cho vi c i u hư ng trong b ng tính. B ng cách s d ng m t ch m c các trang tính s cho phép b n nhanh chóng và d dàng i u hư ng trong b ng tính, ch b ng m t cú nh p chu t s ưa b n n chính xác nơi b n mu n n mà không lo b nh m l n. B n có th t o m t ch m c trong m t vài cách: b ng tay, t ng t o ra b i mã VBA, ho c là s d ng trình ơn tùy ch n theo ng c nh (th m chí có th dùng các hàm Macro4 – không trình bày ây). T o ch m c th công Cách này r t d làm, b n ch c n chèn m i m t worksheet và ăt cho nó m t cái tên, ví d như tên là Index. Sau ó, b n nh n vào tên c a các worksheet có trong workbook và t o các siêu liên k t (hyperlink) n các worksheet tương ng v i tên mà b n nh p. t o hyperlink b n ch n tên sheet, sau ó vào Insert | ch n Hyperlink t i nhóm Links [E2003: Insert | Hyperlinks] ho c nh n phím t t là Ctrl+K m h p tho i Insert Hyperlink.
  • 24. H p tho i Insert Hyperlink Ch n Place in This Document và ch n tên Sheet mu n k t n i t i. Nh n nút OK hoàn t t. Phương pháp này phù h p khi b ng tính không có quá nhi u worksheet và tên worksheet không có s thay i thư ng xuyên, n u không s gây ra nhi u khó khăn cho công tác b o trì trang ch m c. T o ch m c t ng b ng cách s d ng VBA M t cách thay th khác là s d ng VBA t ng t o ra các ch m c. o n mã sau ây s t ng t o ra m t b ng ch m c liên k t n t t c các worksheet mà b n có trong workbook. B ng ch m c này s ư c t o l i m i khi worksheet lưu ch m c ư c ch n. o n mã này ph i ư c t trong private module c a Sheet ch a ch . Chèn m t worksheet m i vào workbook và t tên cho nó là Index ch ng h n. Nh p chu t ph i vào tên worksheet v a t o và ch n ViewCode t trình ơn ng c nh ho c nh n t h p phím Alt+F11. Nh p o n mã VBA sau vào c a s Code: PHP Code: Private Sub Worksheet_Activate() Dim wSheet As Worksheet Dim lCount As Long lCount = 1 With Me .Columns(1).ClearContents .Cells(1, 1) = "INDEX" End With For Each wSheet In Worksheets If wSheet.Name <> Me.Name Then lCount = lCount + 1 With wSheet .Range("A1").Name = "Start" & wSheet.Index .Hyperlinks.Add Anchor:=.Range("A1"), Address:="", SubAddress:= _ "Index", TextToDisplay:="Back to Index" End With Me.Hyperlinks.Add Anchor:=Me.Cells(lCount, 1), Address:="", SubAddress:= _ "Start" & wSheet.Index, TextToDisplay:=wSheet.Name End If Next wSheet End Sub Nh n t h p phím Alt+Q thoát VBE và tr v c a s b ng tính, sau ó lưu b ng tính l i. ch y o n mã v a t o, b n dùng chu t ch n sang worksheet khác trong workbook và sau ó ch n l i worksheet Index kích ho t s ki n Worksheet_Activate. Lưu ý r ng, o n mã s các t tên (Name) cho các ô A1 m i worksheet kèm theo s ch m c c a worksheet trong b ng tính (worksheet u tiên có ch m c là 1, k ó là 2, 3…. n). i u này b o m r ng ô A1 trên m i trang tính có m t tên khác nhau. N u ô A1 trên worksheet c a b n ã ư c t tên, b n nên cân nh c n vi c thay i ô A1 trong o n mã sang m t a ch khác phù h p hơn.
  • 25. Thêm thu c tính cho workbook Lưu ý, n u b n có thi t l p Hyperlink base (siêu liên k t cơ s ) trong workbook thì các hyperlink ư c t o ra t o n mã trên s không th ho t ng ư c, do chúng ã liên k t n các Name trong workbook hi n hành. Khi thu c tính hyperlink base ư c thi t l p thì các siêu liên k t s tr n hyperlink base k t h p v i các Name. Thêm thu c tính Hyperlink base: Vào Office | Prepare | Properties | Document Properties | ch n Advanced Properties [E2003: File | Properties | Summary] và nh p vào hyperlink base. Siêu liên k t trư c và sau khi thêm Hyperlink base Thêm l nh g i ch m c vào trình ơn ng c nh Cách th ba s hư ng d n b n thêm m t l nh vào trình ơn ng c nh g i danh sách các worksheet trong workbook và b n có th ch n l nh này b ng cách kích ph i chu t vào vùng b ng tính b t kỳ. o n mã sau s g i thanh l nh Tabs c a workbook như hình sau:
  • 26. Thêm l nh “Sheet Index” vào trình ơn ng c nh Nh n Alt+F11 m c a s VBE, sau ó nh p o n mã sau vào c a s Code c a ThisWorkbook: PHP Code: Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Can cel As Boolean) Dim cCont As CommandBarButton On Error Resume Next Application.CommandBars("Cell").Controls("Sheet Index").Delete On Error GoTo 0 Set cCont = Application.CommandBars("Cell").Controls.Add _ (Type:=msoControlButton, Temporary:=True) With cCont .Caption = "Sheet Index" .OnAction = "IndexCode" End With End Sub Ti p theo, b n vào Insert | Module và nh p vào o n mã sau: PHP Code: Sub IndexCode() Application.CommandBars("workbook Tabs").ShowPopup End Sub
  • 27. o n mã trên s th c thi m i khi b n ch n l nh “Sheet Index” t trình ơn ng c nh và b n ph i t nó trong Module thì Excel m i có th th y ư c th t c này. Nh n Alt+Q óng c a s VBE tr v b nh tính Excel. K t lúc này, b n nh p ph i chu t t i b t kỳ ô nào trong b t kỳ worksheet nào thì trong trình ơn ng c nh s có thêm l nh “Sheet Index” giúp b n i u hư ng n b t c worksheet nào trong workbook m t cách d dàng. Gi i h n vùng cu n c a b ng tính N u b n không mu n thanh cu n kéo b ng tính lên xu ng ho c qua ph i nhi u, ho c b n có d li u 1 vùng nào ó mà không mu ncho ngu i dùng xem, b n có th gi i h n vùng nhìn ư c c a b ng tính trong ph m vi b n cho phép. Các b ng tính t o b i Excel 2007 có s c t t i a 16.384, Excel trư c ó là 256 (t A n IV), và có s dòng t i a là 1.048.576 (trư c ó là 65.536). Nhưng thư ng thì b n hi m khi s d ng h t. B n có th gi i h n ch cho ngư i dùng xem trong 1 ph m vi nào ó, còn d li u nh y c m, b n ngoài vùng ó. Ngoài ra nó còn h n ch khi ai ó vô tình kéo thanh cu n xu ng dòng 500.000 và n lư t ngư i khác la làng r ng kéo mãi ch ng th y cái gì mà xem. B n có th dùng cách ơn gi n là d u (Hide) nh ng dòng và c t mu n d u ho c b ng cách nh nghĩa 1 vùng cho phép xem ho c ch kích ho t vùng có d li u. 1. D u dòng và c t: Cách d nh t là d u nh ng dòng và c t không dùng n: Trên sheet hi n hành, xác nh dòng cu i có d li u, nh n ch n dòng dư i nó, nh n thêm cùng lúc Ctrl + Shift + mũi tên xu ng ch n n cu i dòng cu i cùng (1.048.576). Sau ó trong tab Home, ch n Format Hide & Unhide – Hide Rows trong Excel 2007 ho c Format - Row - Hide trong 2003 tr v trư c, ho c click ph i chu t và ch n Hide. Làm tương t như v y d u nh ng c t không dùng n: tìm c t cu i, click ch n c t k bên, nh n Ctrl + Shift + mũi tên sang ph i, ch n hide columns. K t qu như hình, vùng làm vi c b trùm 1 màu tăm t i chung quanh và ch ng ai có th kéo i âu ư c n a:
  • 28. 2. Xác nh 1 vùng s d ng b ng Property: B ng cách s d ng Property c a sheet trong VBA, b n có th n nh vùng làm vi c trong ph m vi mong mu n. Th c hi n như sau: Nh n chu t ph i vào tên sheet trong tab Sheet Names, ch n View code, ho c nh n Alt + F11, ch n úng tên sheet trong c a s Project Explorer, r i xu ng khung Property, tìm dòng ScrollArea gõ vào a ch vùng mong mu n thí d $A$1:$H$50. Quay tr l i b ng tính và th kéo thanh cu n, ta th y ch có th cu n xu ng n dòng 50 và cu n ngang n c t H là t i a, không cu n ư c n a. Tuy v y, Excel không lưu tính ch t này khi lưu b ng tính, nên l n sau m file lên ph i set Property l i. Do ó ta ph i vi t 1 o n code th c hi n i u này m i khi kích ho t sheet. Vào vùng so n th o code c a úng sheet mình mu n, ch n s ki n worksheet_activate: PHP Code: Private Sub Worksheet_Activate ( ) Me.ScrollArea = "A1:H50" End Sub Bây gi m i khi kích ho t b ng tính, VBA s n nh vùng gi i h n như mong mu n. M c dù không có vùng bao quanh tăm t i như cách trên, nhưng b n không th nào cu n ra kh i vùng, b n c ch n 1 ô n m ngoài vùng cho phép cũng không ư c, k c c t I, J, K dù b n có ngó th y cũng ch thèm
  • 29. thôi. Th m chí v i nh ng o n code VBA b n t o sau này, trong ó có câu l nh select 1 vùng n m ngoài vùng cho phép, ho c ch n nguyên c t nguyên dòng, cũng không ch n ư c. có th th c thi các o n code trên b n ph i cho vào code 2 dòng l nh: u code thêm dòng: ActiveSheet.ScrollArea = "" Cu i code thêm dòng: ActiveSheet.ScrollArea = "$A$1:$G$50" Thí d : PHP Code: Sub MyMacro( ) ActiveSheet.ScrollArea = "" Range("Z100").Select Selection.Font.Bold = True ActiveSheet.ScrollArea = "$A$1:$G$50" Sheets("Daily Budget").Select ActiveSheet.ScrollArea = "" Range ("T500").Select Selection.Font.Bold = False ActiveSheet.ScrollArea = "$A$1:$H$25" End Sub o n code trên ch n ô Z100 trong sheet hi n hành và nh d ng in m. Sau ó ch n ô T500 trong sheet khác, nh d ng in thư ng (không m). Trư c khi th c hi n ch n và nh d ng sheet nào, ph i set vùng cu n sheet ó là “”. Sau khi nh d ng,set tr vùng gi i h n cu n theo mong mu n. 3. Ch kích ho t vùng d li u hi n hành: Phương pháp này linh ho t hơn, t ng gi i h n vùng cu n b ng tính v a b ng vùng d li u c a b ng tính mà b n t code sau: PHP Code: Private Sub Worksheet_Activate( ) Me.ScrollArea =Me.UsedRange. Address End Sub o n code trên s ch y m i khi b n kích ho t b ng tính mà b n t code. Dù v y cũng có h n ch là b n không th thêm d li u vào dòng m i ho c c t m i. B n có th m r ng vùng gi i h n ra thêm 5 dòng và 2 c t b ng o n code sau: PHP Code: Private Sub Worksheet_Activate() With Me.UsedRange Me.ScrollArea = .Resize(.Rows.Count + 5, .Columns.Count + 2).Address End With End Sub Còn n u b n mu n hơn n a, nh p li u thêm 1 cách tho i mái, thì dùng 1 o n code nh m reset vùng cu n b ng nguyên sheet: PHP Code:
  • 30. Sub ResetScrollArea( ) ActiveSheet.ScrollArea = "" End Sub B n có th gán short key (phím t t) cho o n code này b ng cách nh n Alt F8, ch n macro ResetScrollArea, nh n nút option, và gán 1 phím t t thí d Ctrl + W. Sau này m i khi b n mu n nh p li u, nh n Ctrl + W trư c khi nh p li u. Khi nh p li u xong, ch c n b n kích ho t 1 sheet khác xong quay l i sheet này, vùng cu n l i b gi i h n b i o ncode trên (Worksheet_Activate()) Khóa và b o v nh ng ô có ch a công th c Chiêu này giúp b n cho phép ngư i khác thay i các ô có ch a d li u, nhưng c m h thay i các ô ch a công th c. B n cũng có th b o v các ô có ch a công th c mà không c n ph i b o v toàn b trang tính c a b n. Khi t o m t b ng tính, thư ng chúng ta s ph i dùng n m t s công th c, và khi chia s b ng tính cho m i ngư i, có th b n mu n r ng, không ai có th can thi p (xóa, s a...) nh ng vào nh ng ô có ch a công th c. Cách d nh t là cũng ph bi n nh t là Protect (b o v ) b ng tính. Tuy nhiên, Protect b ng tính không ch ngăn không cho can thi p vào các ô ch a công th c, mà nó không cho can thi p vào t t c , nghĩa là không ai có th làm gì b ng tính c a b n. ôi khi, b n l i không mu n như v y, b n ch mu n b o v các ô ch a công th c thôi, còn nh ng ô ch a d li u thì không. Có ba gi i pháp th c hi n i u này: Khóa nh ng ô ch a công th c, s d ng ch c năng Data-validation cho các ô ch a công th c, và t ng b t t t ch c năng b o v . Khóa các ô ch a công th c Theo m c nh, t t c các ô trong b ng tính u ư c khóa (locked), tuy nhiên, nó ch ng có tác d ng gì tr phi b n áp d ng l nh Protect b ng tính. ây là cách d nh t áp d ng l nh Protect cho b ng tính, nhưng ch nh ng ô ch a công th c thì m i b khóa, và ư c b o v : Ch n toàn b b ng tính, b ng cách nh n Ctrl+A, ho c nh n vào cái ô vuông n m giao i m c a c t A và hàng 1. R i nh n nút ph i chu t và ch n Format Cells, r i trong tab Protection, b ánh d u tùy ch n Locked, r i nh n OK:
  • 31. M khóa (Unlock) toàn b b ng tính b ng cách b tùy ch n Locked Sau ó, b n ch n i m t ô nào ó, ch n Home ➝ Find & Select ➝ Go To Special [E2003: Edit | Go To… | Special]; ho c nh n Ctrl+G hay F5 r i nh n vào nút Special.... H p tho i sau ây s m ra: Dùng h p tho i Go To Special ch n các ô có ch a công th c Trong h p tho i ó, b n nh n vào tùy ch n Formulas, và n u c n thi t thì ch n ho c không ch n thêm 4 ô nh dư i (li t kê các lo i công th c, m c nh thì c 4 ô này u ư c ch n), và nh n OK. Sau ó, b n m l i h p
  • 32. tho i Format Cells ã nói trên, nhưng l n này thì b n ánh d u vào tùy ch n Locked, và n u b n thích n luôn công th c (không cho th y) thì ánh d u vào tùy ch n Hidden, nh n OK. Vi c cu i cùng là Protect b ng tính: Ch n Home trên Ribbon, nh n vào Format trong nhóm Cells, r i nh n vào Protect Sheet...; ho c ch n Review trên Ribbon, r i nh n vào Protect Sheet [E2003: Tools | Protection | Protect Worksheet]: Ch n Protect Sheet t Home Ch n Protect Sheet t Review Trong h p tho i Protect Sheet, b ánh d u tùy ch n Select locked cells, ch cho phép Select unlocked cells (ch n nh ng ô không khóa), và nh p vào m t password, n u c n thi t: B tùy ch n Select locked cells trong h p tho i Protect Sheet
  • 33. V y là xong. T bây gi , nh ng ô ch a công th c c a b n s ư c b o v , có th không xem th y ư c n u b n ã ch n Hidden, b n không lo nh ng công th c này b can thi p n a. S d ng Data-validation S d ng Data-validation, ch là ơn gi n không cho ghi è vào nh ng ô có ch a công th c, nghĩa là không cho s a công th c. Tuy nhiên, phương pháp này ch phòng ng a cho chính b n, nghĩa là tránh vi c táy máy s a l i cái gì ó trong nh ng ô ch a công th c, ch th t ra, m c dù ã ư c "Validation", b n v n có th xóa công th c, ho c dán vào nh ng ô ó b t kỳ d li u nào b n thích... Nói chung nó không b o v ư c gì nhi u. Nhưng cũng xin nói sơ qua v phương pháp này: th c hi n, b n hãy ch n nh ng ô ch a ô công th c b ng ch c năng Go To Specials mà tôi ã nói trên. R i, v i nh ng ô ch a công th c ang ư c ch n, b n g i Data Validation t menu Data trên Ribbon [E2003: Data | Validation]. Trong h p tho i này, ch n tab Settings, ch n Custom cho khung Allow, và nh p công th c này: =" " vào khung Formula, r i nh n OK, như hình sau: S d ng Data Validation b o v nh ng ô ch a công th c K t ây, m i khi b n nh p b t kỳ th gì vào trong nh ng ô ch a công th c, ho c b n mu n s a l i công th c, s có m t c nh báo xu t hi n, ngăn không cho b n nh p vào. Xin nh c l i, phương pháp này không c m vi c xóa h n công th c, cũng như dán è th gì ó vào nh ng ô ch a công th c. T ng b t t t ch c năng b o v Phương pháp này, s t ng b t ch c năng b o v b ng tính (Protect) m i khi b n ch n m t ô ã ư c khóa (locked), nhưng nó cũng s t ng t t ch c năng b o v khi b n ch n m t ô không b khóa. b t u, b n hãy ch c ch n r ng nh ng ô b n mu n b o v (ô ch a công th c) ã ư c khóa, còn nh ng ô không c n b o v thì không b khóa, như tôi ã trình bày phương pháp th nh t. Sau ó, b n nh n Alt+F11, nh n vào Sheet mà b n mu n b o v các ô ã khóa trong ó, r i nh p vào trong khung so n th o o n code sau ây: PHP Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Locked = True Then Me.Protect Password:="Secret" Else
  • 34. Me.Unprotect Password:="Secret" End If End Sub N u không c n n password, b n không c n dùng o n Password:="Secret", ho c n u mu n Password là th gì khác, b n s a l i ch Secret b ng cái b n mu n. N u b n lo r ng ngư i ta có th vào trong khung so n th o VBA xem password, b n có th b o v các code này (không cho xem) b ng cách ch n Tools ➝ VBAProject Properties, ch n tab Properties, ch n Lock Project for Viewing, và nh p vào m t password. Tuy nhiên, phương pháp này cũng không ho t ng hoàn h o, m c dù nó cũng giúp b n ư c ph n nào vi c b o v các công th c. T khóa Target ư c s d ng trong o n code s ch tham chi u n ô ang "active" ngay t i th i i m nó ư c ch n (xin nói thêm, cho dù b n ch n m t dãy, nhưng trong dãy ó, ch có m t ô "active" mà thôi, là ô ang có màu khác v i nh ng ô còn l i). Vì lý do này, n u m t ngư i nào ó ch n m t dãy các ô (v i ô "active" không b khóa), thì ngư i ó có th xóa toàn b dãy ô này, b i vì khi ó thì ch c năng Unprotect ã ư c t ng b t! S d ng nh d ng theo i u ki n tìm d li u trùng nh d ng theo i u ki n c a Excel thư ng ư c s d ng xác nh giá tr trong ph m vi c th trên b ng tính, nhưng chúng ta có th c i ti n nó nh n d ng s trùng l p d li u trong m t danh sách ho c m t b ng. Ch c năng nh d ng theo i u ki n trong Excel 2007 ã ư c c i ti n, do v y bài hư ng d n này thích h p cho các phiên b n t Excel 2003 v trư c. M i ngư i thư ng xuyên ph i nh n di n s trùng l p d li u trong m t danh sách ho c m t b ng, và làm th công công vi c này có th m t nhi u th i gian và d m c l i. làm cho công vi c này d dàng hơn, b n có th ch bi n công c nh d ng theo i u c a Excel m t ít. Ví d như, b n có m t b ng d li u là vùng $A$1:$H$100. B n ch n nó b ng cách ch n ô trên cùng – bên trái c a b ng (A1) và kéo chu t n ô dư i cùng bên ph i (H100). i u này r t quan tr ng, vì ta mu n ô A1 ph i là ô hi n hành (active) trong vùng l a ch n. Sau ó vào Format | ch n Conditional Formatting…. L nh nh d ng theo i u ki n trong Excel 2003
  • 35. Trong h p tho i Conditional Formatting, b n ch n Formulas Is t i Condition 1 và nh p công th c sau vào h p tr ng bên c nh: =COUNTIF($A$1:$H$100,A1)>1 H p tho i Conditional Formatting Nh n ch n nút Format | ch n màu và ki u ch t i ngăn Font và ch n màu n n t i ngăn Patterns. Nh n OK khi hoàn t t vi c nh d ng. Nh n ti p OK áp d ng nh d ng cho vùng d li u ang ch n. H p tho i Format Cells Theo b ng s li u minh h a thì h u h t các ô u có d li u trùng tr hai ô H7 và H49. Trong công th c nh d ng theo i u ki n này, ta s d ng tham chi u tương i cho a ch ô c n ki m tra trong vùng a ch xác nh. B ng cách s d ng nh d ng theo i u ki n như th này, Excel s t ng nh n bi t a ch ô làm i u ki n trong hàm COUNTIF. C th thì các công th c nh d ng theo i u ki n t i các ô như sau: Ô A1 s có công th c là: =COUNTIF($A$1:$H$100,A1)>1 Ô A2 s có công th c là: =COUNTIF($A$1:$H$100,A2)>1 Ô A3 s có công th c là: =COUNTIF($A$1:$H$100,A3)>1 … Ô B1 s có công th c là: =COUNTIF($A$1:$H$100,B1)>1 Ô B2 s có công th c là: =COUNTIF($A$1:$H$100,B2)>1 …
  • 36. nh d ng theo i u ki n trong Excel 2007 ã có s n tính năng làm n i các giá tr trùng trong m t vùng d li u. Các bư c th c hi n như sau: Ch n vùng d li u | vào ngăn Home | ch n Conditional Formatting | ch n Highlight Cells Rules | ch n Duplicate Values… L nh Duplicate Values c a Conditional Formatting trong Excel 2007 Trong h p tho i Duplicate Values, b n ch n ki u Duplicate (ho c Unique: duy nh t) và ch n nh d ng t i h p k bên sau ó nh n OK. H p tho i Duplicate Values
  • 37. Tìm d li u xu t hi n 2 ho c nhi u l n b ng công c Conditional Formating Dù cho công c Conditional Formating ã c i ti n r t nhi u trong Excel 2007, giúp chúng ta tìm nh ng d li u trùng (Duplicate), nhưng nó v n chưa cung c p nh ng tính năng tìm ra nh ng d li u xu t hi n 2 l n ho c nhi u hơn. N u b n mu n xác nh nh ng d li u 2 l n ho c nhi u hơn, b n có th dùng Conditional Formating v i s lư ng nhi u các i u ki n, trong gi i h n cho phép c a b nh h th ng. (Nh r ng trong Excel 2003 tr v trư c, ch ch p nh n có 3 i u ki n). Sau ó b n gán nh ng nh d ng màu s c cho m i i u ki n. th c hi n, ch n ô A1 là ô trên cùng bên trái c a vùng d li u, b m shif và clickvào ô H100. C n nh c các b n 1l n n a, là ph i làm úng trìnht cho ô ch n (activecell) là ô A1. Bây gi vào tab Home, Conditional Formating, NewRule trong m c Style. Ch n [FONT=Birka]Use a Formula to determine which cells to format” và click ch n “Format values where this formula is true.” i v i Excel 2003: Format, Conditional Formating, ch n Formula Is). Trong ô tr ng gõ công th c: =COUNTIF($A$1:$H$100,A1)>3 __________ Nh n nút Format, ch n màu n n và màu ch cho nh ng ô ch a d li u xu t hi n hơn 3 l n, và OK.
  • 38. _____________ Nh n New Rule (trong Excel 2003 ch n vào i u ki n th 2), làm ti p 1 i u ki n, l n này công th c là: =COUNTIF($A$1:$H$100,A1)=3.
  • 39. Nh n New Rule (trong Excel 2003 ch n vào i u ki n th 3), làm ti p 1 i u ki n, l n này công th c là: =COUNTIF($A$1:$H$100,A1)=2. Nh m i l n ch n 1 màu khác nhau. K t qu : b n có nh ng ô có màu khác nhau cho nh ng d li u xu t hi n 2 l n, 3 l n, và nhi u hơn. C n nh c l i chuy n ch n úng vùng ch n sao cho ô A1 là ô hi n hành, Excel hi u úng i u ki n trong công th c CountIf. Và: Excel 2003 gi i h n b i 3 i u ki n, trong khi ó Excel 2007 ch b gi i h n b i b nh h th ng. T o riêng m t thanh công c cho riêng m t b ng tính c th B n ã t ng t o ra thanh công c riêng cho mình? B n có th y r ng, thanh công c này luôn luôn ư c n p vào Excel, và luôn hi n th , v i b t kỳ b ng tính nào, v i b t kỳ ngư i s d ng nào? Có bao gi , b n mu n r ng, thanh công c t t o này ch ư c hi n th v i m t b ng tính c th nào ó mà thôi không? Ví d , b n t t o ra m t thanh công c có ch a nh ng nút dùng h tr vi c nh p công th c và x lý b ng (nh ng d u =, +, -, *, /, nh ng nút dùng xóa hàng, xóa c t, v.v...), t m g i là thanh công c A, ph c v riêng cho b ng tính B. Và b n mu n, làm th nào ch khi b n m b ng tính B, thì m i th y thanh công c A c a b n, còn m b ng tính khác, thì ch th y nh ng thanh công c m c nh c a Excel? Th m chí trong cùng m t c a s Excel, nhưng khi b n kích ho t b ng tính B, thì m i th y thanh công c A, còn khi nh n Ctrl+Tab chuy n sang b ng tính khác, thì thanh công c A này s bi n m t? Thi t nghĩ, ch c h n ã có lúc b n mu n i u tôi v a nói. Vì nó giúp cho thanh công c c a Excel luôn g n gàng, ngăn n p (luôn là thanh công c m c nh c a Excel), n u không ph i là b n, mà là ngư i khác, thì không có gì b ng v i thanh công c l ho c; ho c là, ch khi nào m b ng tính B ra, thì m i c n n thanh công c A, còn bình thư ng thì ch ng c n... Vi c này, không có gì khó. B n ch c n chèn m t o n code ơn gi n vào trong "Private module" c a b ng tính. Trư c h t, b n hãy t o cho riêng mình m t thanh công c . t tên cho nó là "MyCustomToolbar" ch ng h n. Ti p theo, b n nh n Alt+F11 m c a s Microsoft Visual Basic, nh n úp vào This workbook trong khung Project. B n cũng có th làm nhanh vi c này b ng cách nh n nút ph i chu t vào cái bi u tư ng Excel bé tí n m ngay bên trái menu File, r i ch n View Code, c a s VBA cũng s m ra v i This workbook ư c ch n s n: Nh n ph i chu t vào bi u tư ng Excel nh bên trái menu File r i ch n View Code
  • 40. R i, nh p vào hai o n code sau ây: PHP Code: Option Explicit -------------------------------------------------------------------- Private Sub Workbook_Activate() On Error Resume Next With Application.CommandBars("MyCustomToolbar") .Enabled = True .Visible = True End With On Error GoTo 0 End Sub -------------------------------------------------------------------- Private Sub Workbook_Deactivate() On Error Resume Next Application.CommandBars("MyCustomToolbar").Enabled = False On Error GoTo 0 End Sub B n có th thay th "MyCustomToolbar" b ng cái tên mà b n ã t cho thanh công c t t o c a b n. Sau ó b n nh n Alt+Q tr v Excel. th , b n hãy m thêm m t b ng tính n a, Book2.xls ch ng h n. B n s th y, khi nào b n ch n b ng tính mà có o n code trên, thì b n m i th y "MyCustomToolbar", còn n u ch n Book2 (chuy n i qua l i gi a các b ng tính b ng Ctrl+Tab), "MyCustomToolbar" bi n m t! Ch n l i b ng tính ban u, "MyCustomToolbar" xu t hi n l i. V y là thành công r i! ư c voi òi tiên. Bây gi , gi s b n mu n r ng, trong cùng m t b ng tính, nhưng ch có Sheet1 thì m i th y "MyCustomToolbar", còn Sheet khác thì không? ư c thôi. B n có th vi t thêm m t "Level" n a cho o n code trên. Hãy b o m là b n ang ch n b ng tính có ch a code (t t nh t là b n óng cái Book2 i). Quay tr l i c a s VBA, b n hãy nh n ph i chu t vào Sheet nào mà b n mu n th y "MyCustomToolbar", r i ch n View Code (ho c nh n úp vào tên Sheet ó cũng ư c). ây tôi gi s b n ch n Sheet1. Nh p vào hai o n code sau ây: PHP Code: Option Explicit -------------------------------------------------------------------- Private Sub Worksheet_Deactivate() On Error Resume Next Application.CommandBars("MyCustomToolbar").Enabled = False On Error GoTo 0 End Sub -------------------------------------------------------------------- Private Sub Worksheet_Activate() On Error Resume Next With Application.CommandBars("MyCustomToolbar") .Enabled = True .Visible = True
  • 41. End With On Error GoTo 0 End Sub R i nh n Alt+Q quay l i Excel. Bây gi , b n hãy dùng chu t ho c nh n Ctrl+PgUp/Ctrl+PgDn ch n qua l i các Sheet và xem th cái gì xu t hi n trên màn hình. Xin ính kèm theo ây b ng tính ã có s n nh ng o n code nói trên, cùng m t "MyCustomToolbar" làm ví d . Cũng xin nh c l i, chiêu này ch có tác d ng v i nh ng phiên b n trư c Excel2007. Sao chép công th c gi nguyên tham chi u tương i (gi ng như sao chép tham chi u tuy t i) Trong Excel, 1 công th c có th ch a nh ng tham chi u tương i ho c tuy t i. Khi 1 công th c có tham chi u tương i ư c sao chép, thì do tính ch t, tham chi u s ch y theo n ch m i. Ch có công th c có tham chi u tuy t i m i gi nguyên khi sao chép. Xin nh c l i 1 tí: Khi b n mu n công th c, dù cho copy i âu, cũng tham chi u n 1 ô hay 1 vùng c nh nào ó, b n ph i dùng tham chi u tuy t i b ng cách thêm d u $ vào tham chi u thí d $A$1. B n cũng có th ch thêm d u $ vào tiêu chí dòng ho c ch tiêu chí c t ch c nh 1 chi u khi copy công th c. Nhưng ôi khi b n mu n sao chép 1 công th c tham chi u tương i, gi nguyên tham chi u, nhưng l i không mu n chuy n thành tuy t i? Có nhi u cách làm. 1. Tô en công th c trong thanh công th c (formula bar) r i copy, không copy ô, và t i ô ích cũng paste vào thanh công th c. Cách này dùng khi b n ch sao chép 1 ô. 2. Khi b n mu n sao chép c 1 kh i ô, thì cùng Find and replace: - trư c tiên, tô ch n kh i mu n copy. - Nh n Ctrl + H là phím t t c a Home – Find & Select – Replace (2007) ho c Edit – Replace (2003). - trong ô find what: gõ d u = - trong ô replace with: gõ d u “và” (&), ho c d u nháy ơn (‘), ho c b t c ký t nào không dùng trong công th c - Nh n Replace All - nguyên như v y, nh n ctrl + C - Qua v trí c n chuy n n, nh n Ctrl + V - nguyên như v y, chuy n ngư c l i d u & ho c d u nháy thành d u = v i công c find and replace. - Tr v vùng ngu n h i nãy, cũng chuy n ngư c d u & thành d u = Nghe thì nhiêu khê, nhưng v n nhanh hơn s a t ng tham chi u tương i thành tuy t i c a c 1 kh i ô, r i chuy n ngư c l i. Ghi chú: N u ch 1 vài ô thì dùng cách 1 nhanh hơn. G b nh ng liên k t ma B n m m t b ng tính, nh n ngay m t thông báo: "Update links", nhưng ch ng có link nào! Làm th nào Update m t link khi nó không t n t i? Nh ng liên k t ngoài (external links) là nh ng liên k t tham chi u n m t b ng tính khác, chúng có th n m trong các công th c, trong các Name, ho c trong các i tư ng ư c chèn vào (các th , các hình...). Khi
  • 42. nh ng liên k t này b "gãy", ph n l n lý do là do vi c di chuy n ho c sao chép m t Sheet n m t b ng tính khác. Và khi ó, chúng tr thành nh ng "liên k t ma", nghĩa là th y ư ng link, nhưng không bi t chúng ư c d n n t âu. Sau ây là m t vài cách giúp b n x lý nh ng liên k t ma này. u tiên, b n c n xem l i li u trong các công th c trong b ng tính c a b n có ch a b t kỳ m t liên k t ngoài nào (mà không ph i là liên k t ma) không. N u b n không ch c r ng trong các công th c trong b ng tính c a b n có m t liên k t ngoài, b n hãy s d ng công c tìm ki m. Khi tìm ra r i, b n ch vi c ơn gi n là s a l i cho nó chính xác, ho c xóa h n chúng i n u không c n thi t. B n cũng có th vào trang web này: http://www.microsoft.com/downloads/s...displaylang=vi, t i v công c Delete Links Wizard, là m t công c ư c thi t k tìm và xóa t t c nh ng liên k t như liên k t n các Name, liên k t n các Name n, n các th , các query, các i tư ng... Tuy nhiên, công c này không tìm ra ư c nh ng liên k t ma. Cho dù b n ã tin ch c r ng, không có m t công th c nào có ch a liên k t, b n v n c n ph i ch c ch n là không có b t kỳ m t liên k t ma nào ang núp âu ó. làm vi c này, tôi thư ng m h p tho i Name Manager, dò t ng Name m t, ch c ch n r ng không có m t Name nào ch a m t tham chi u n m t b ng tính khác. V i Excel 2003, thay vì nh n vào t ng cái tên xem tham chi u c a nó trong khung Refers to, b n có th s d ng cách này, nhanh hơn: Ch n menu Insert | Name | Paste, r i trong h p tho i Paste Name, nh n vào nút Paste Link. Excel s t o ra m t danh sách các Name có trong b ng tính, cùng nh ng tham chi u c a nó, ngay trong b ng tính, b n ki m tra. Excel 2007 thì d hơn, b n có th xem m t l n t t c các Name trong h p tho i Define Name. Nhưng n u b n cũng mu n dán chúng ra ngoài b ng tính, b n hãy ch n Formulas | Use in formula | Paste Name, r i nh n vào Paste List trong h p tho i v a xu t hi n. Tuy nhiên, v i t t c các phiên b n Excel, cách nhanh nh t g i h p tho i Paste Name, là nh n F3. N u có b t kỳ m t Name nào tham chi u n m t vùng ngoài b ng tính, có th b n s th y chúng có ch a ít nh t m t ư ng link gi ng cái ã hi n th trong h p tho i c nh báo Update Link khi b n m b ng tính. Và b n hãy t quy t nh là s a l i ư ng link cho úng, ho c xóa Name ó i. Có m t lo i kiên k t khác n a, n m trong các bi u . Khi b n ã ki m tra các công th c, các Name như tôi v a trình bày, mà b ng tính c a b n v n òi Update Link, b n nên ki m tra các bi u (n u có), nghĩa là ki m tra vùng d li u và nhãn X-asis c a bi u xem chúng có ch a m t liên k t ngoài nào không. N u tìm th y, hãy s a l i ư ng link cho úng. Các liên k t ngoài còn có th núp trong các i tư ng (object) như là các Text box, các hình v , v.v... Các i tư ng này có th ư c liên k t n m t b ng tính khác. Cách d nh t ch n nhanh các i tư ng, là b n ng t i b t kỳ m t ô nào trong b ng tính, ch n Home | Find & Select | Go to Special [E2003: Edit | Go to... | Special], ho c nh n F5, r i kích ho t tùy ch n Object và nh n OK. Các thao tác này s ch n t t c các i tư ng (object) có trong b ng tính. B n nên làm nh ng vi c sau ây trong 1 b n sao c a file: V i t t c các i tư ng ang ư c ch n, b n có th xóa, lưu b ng tính, óng b ng tính, và m ra l i xem th có còn v n gì n a không. Cu i cùng, nơi mà b n ph i tìm là trong nh ng sheet n mà b n ã t o ra, d u i r i quên ph t. B n hãy làm cho chúng hi n lên (2007: View ➝Unhide, 2003: Format ➝Sheet ➝Unhide). N u m c Unhide này b m i, nghĩa là không có sheet n. N u b n v n còn nghi ng r ng co nh ng sheet siêu n, hãy c l i chiêu s 5 tìm và bu c chúng hi n ra. Th là b n ã x xong nh ng link có th c mà b gãy. Bây gi n nh ng link ma. M fle b l i lên, Ch n Data – Edit links (2007) ho c Edit Links (2003). ôi khi b n ch c n nh n ch n vào cái link ma, nh n Change Source, và gán tr l i chính cái link ó. Nhưng thư ng thì b n b 1 thông báo l i r ng công th c nào ó b l i, và không
  • 43. th c hi n ư c. N u b n làm cách d như v y không xong thì áp d ng cách này: M c 2 file lên, file l i và file ư c link n. T 1 ô b t kỳ c a file l i, ánh d u b ng (=), r i qua file kia ch n cũng 1 ô b t kỳ, r i Enter. B n ã t o ư c 1 link thi t, link ngon. Lưu c 2 b ng tính l i, nhưng ng óng. Vào b ng tính l i, l i ch n Data – Edit links (2007) ho c Edit Links (2003), Change source, s a m i tham chi u c a link ma vào b ng tính kia. Lưu l i l n n a r i xoá ô ch a link b n m i t o. Cách này thư ng là có hi u qu tr ma, bây gi Excel nh n ra r ng b n ã xoá link n b ng tính còn l i. Nhưng n u v n chưa tr t n g c và v n b l i, b n làm bư c ti p theo, nhưng nh là làm trên 1 b n sao c a file l i. Cách này s xoá vĩnh vi n d li u c a b n, nên t t nh t là t o 1 b n d phòng trư c. M file l i lên, delete 1 sheet, lưu, óng, r i m lên l i. N u không còn thông báo update link ma, thì 100% link ma n m trong sheet ó. N u không, delete ti p 1 sheet n a ki m tra. Trư c khi xoá sheet cu i cùng, ph i insert 1 sheet tr ng. Nh ghi l i nh ng sheet ch a link ma. Ti p theo, m file backup h i nãy lên, back up l n n a, tr vào sheet l i h i nãy b n ã ghi nh . Bây gi ch n t ng vùng 10 x 10 ô d li u, xoá b ng l nh Clear – Clear All. Mà khoan, b n backup l n 2 chưa? N u chưa thì back up i nhé. Bây gi l i lưu, óng, m lên l i xem còn l i không. N u còn, ch n vùng 10 x 10 ô ti p theo, l i xoá, lưu, óng, m lên xem thông báo update link. n khi nào mà không còn thông báo link ma thì nghĩa là link ma n m trong vùng 10 x 10 ô m i xoá. B n t p trung tìm ki m trong khu v c này, t ng ô m t, s th y lòi ra con ma. Gi m kích thư c file Excel b phình to b t thư ng B n có bao gi có 1 file Excel b tăng kích thư c n m c báo ng ch bi t nguyên nhân? Có nhi u lý do làm cho b ng tính b phình lên v kích thư c file và có nh ng cách lo i tr . Nh ng bí quy t sau ây có th giúp b n n u b n có 1 file Excel có kích thư c l n b t thư ng. Có khi nào b n b b i th c do c ăn mà chưa tiêu hoá k p chưa? File Excel cũng th . Nó b phình ra là do b n c nh i nhét th vào b t nó ph i th c hi n, nó ph i nu t tr ng ch không k p nhai, h u qu là nó s không làm vi c như ý mu n. Tôi ã th v i 1 file Excel chu n v i khá nhi u d li u. V i d li u thô, nó có kích thư c 1,37 Mb. R i tôi cho vào 1 Pivot Table, s d ng d li u ngu n là 4 c t c a vùng d li u. Kích thư c file tăng lên 2,4 Mb. Tôi th thi t l p vài nh d ng, và kích thư c file l p t c b nhân ôi. M t trong nh ng nguyênnhân ch y u làm tăng kích thư c file nh ng file Excel trư c 2007, khi chưa có khái ni m table, là các b n c th nh d ng màu, c font, màu ch , óng khung, . .. cho c c t ho c cho c dòng, n u không nói là c b ng tính; ch không ch nh d ng cho khu v c ch a d li u. Tôi t ng th y ngư i h m b ng tính m i lên, là l p t c Ctrl A, tô tr ng toàn b , óng khung toàn b . Không nh ng th h còn xác nh vùng d li u ngu n cho bi u , cho Pivot table, . . . là c nguyên c t. Có khi th y cái thanh cu n d c và ngang c a Excel tr nên nh tí t , kéo hoài không th y h t mà d li u thì tr ng trơn. gi i quy t b n ph i s a, b h t nh ng nh d ng th a trong nh ng dòng c t tr ng, b cái thói quen xoá màu fill color b ng cách ch n fill tr ng. Hãy ch n No Fill! Sau ó i u ch nh d li u ngu n c a bi u , c a Pivot Table ch v a v i vùng có d li u. Hãy làm như sau: trư c h t hãy back up b ng tính l i. 1. G b nh ng nh d ng trên nh ng dòng c t th a: Bư c u tiên là xác nh b ng tay và m t ô cu i cùng bên ph i dư i, có ch a d li u. ng có mà dùng phím ctrl+ mũi tên xu ng ho c ctrl + mũi tên qua ph i, ho c dùng Find - Select - Go To Special – Last Cells, cách này s ch t i ô cu i cùng có nh d ng, không ph i ô cu i có d li u. Khi ã xác nh b ng m t ô cu i ch a d li u thì click ch n nguyên dòng k dư i ô ó. Lúc này i nh n Ctrl + Shift + mũi tên xu ng ch n toàn b nh ng dòng bên dư i vùng có d li u. Sau ó dùng l nh Clear – All xoá vùng này. Tương t , khi xác nh ô cu i có ch a d li u xong, nh n ch n nguyên c t li n k bên ph i, nh n ti p Ctrl + Shift + mũi tên qua ph i ch n toàn b c t bên ph i. Sau ó l i dùng l nh Clear – All xoá vùng
  • 44. này. Không nên dùng l nh xoá dòng ho c c t, vì có th có nh ng công th c tham chi u n chúng. Lưu b ng tính l i và th xem kích thư c file trong Property: 2007: Office button ➝Prepare ➝Properties ➝Document Properties ➝Advanced Properties 2003: File ➝Properties… ➝General 2. Xoá Macro: Không ph o là xoá h n Macro, mà ch g chúng ra ngoài file Excel: Có 1 cách nhanh, không gây h i ó là Export t t c các modules và UserForms vào ĩa c ng. Nh n Alt F11 vào c a s VBA. nh n chu t ph i vào t ng module, ch n remove module (tên môdule). Trong thông báo hi n ra nh n Yes, và ch n 1 thư m c lưu l i. làm ti p cho t ng cái Form. ng quên c nh ng macro lưu tr trong sheet ho c workbook. Sau khi ã xoá xong, lưu b ng tính l i. Sau ó, cũng trong c a s VBA, vào menu File – Import File và import h t nh ng modue và form h i nãy. Làm như v y, ta v n có th s d ng form và Macro, nhưng m i cái như v y s t o1 file text, và ngăn ch n nh ng th linh tinh mà Macro mang theo. M t s ng d ng trên Internet có th làm công vi c này, nhưng ư c bi t r ng nh ng ti n ích ó s làm r i tung code và th m chí làm tăng kích thư c file. T t nh t trư c khi ng d ng 1 ti n ích nào, hãy backup file c a b n trư c. 3. i u ch nh vùng d li u ngu n: N u sau khi làm nh ng bư c trên mà kích thư c file c a b n không gi m ư c bao nhiêu, hãy ki m tra d li u ngu n c a Pivot Table và Pivot Chart. M t vài ngư i thư ng s d ng nguyên c c t d li u làm ngu n cho Pivot table, ch phòng xa sau này có thêm d li u c p nh t vào dù ch vài dòng. N u nh t thi t ph i phòng xa như v y, t t hơn b n dùng name ng. Xem thêm tuy t chiêu s 47. 4. Làm s ch các sheet: Trong các sheet c a b n có th t n t i nh ng nh d ng th a, nh ng style, nh ng autoshape th y ư c và không th y ư c (có khi lên n hàng trăm ho c hàng ngàn). a. Xoá object và autoshape th a. tìm ra nh ng autoshape ho c object n b n ph i vào option c a Excel s a l i như hình sau: 2007: 2003:
  • 45. B n có th nh n Ctrl + G, Special – Object ch n 1 lúc nhi u object. b. Làm s ch nh ng cái không nhìn th y trong sheet: Trư c tiên, b n hãy backup b ng tính. Unhide toàn b sheet n và c sheet siêu n. (xem thêm chiêu s 5). Bây gi b nth xoá l n lư t t ng sheet m t (xoá h n), lưu l i, r i vào Property xem l i kích thư c. N u sau khi xoá sheet nào, mà kích thư c file gi m áng k , thì sheet ó ch a nhi u rác (không k d li u). V y, khi ã xác nh sheet ch a rác thì b n ph i làm gì? B n hãy m file backup h i nãy lên, t o 1 sheet m i toanh, ch n vùng d li u c a sheet ch a rác, dùng l nh Cut (Ctrl + X), ch ng copy, Paste vào sheet m i. B ng cách c t (Cut), Excel s gi nguyên tham chi u cho b n. Cu i cùng, delete sheet ch a rác. Hy v ng là sau này, các b n s bi t cách x lý nh ng file có kích thư c l n l thư ng.
  • 46. C u d li u t m t b ng tính b l i Khi b ng tính b l i (corrupt), b hư, nghĩa là b n b m t h t d li u, mà nhi u khi s m t mát này còn au hơn là m t ti n. Chiêu này s giúp b n m t vài cách ph c h i l i ph n nào d li u trong nh ng b ng tính b l i. M t b ng tính ôi khi g p ph i nh ng l i mà b n ch ng hi u vì lý do gì. i u này có th em l i cho b n nh ng v n tr m tr ng, nh t là khi b n b hư m t b ng tính quan tr ng mà b n chưa h sao lưu d phòng. Do ó, bài h c u tiên là: Luôn luôn sao lưu b ng tính c a b n vào m t nơi khác. Nhưng trong th c t thì không ph i ai cũng nh i u này, và, có th là b ng tính c a b n s b hư trư c khi b n nghĩ n vi c sao lưu! Tuy nhiên, b n ng th t v ng quá, vì cho dù b ng tính c a b n b l i, ôi khi b n v n có th m ư c nó ra và có th làm ư c cái gì ó... Khi b n v n còn m ư c b ng tính Khi b n v n còn có th m ư c m t b ng tính b l i, thì trư c khi làm b t c i u gì, b n hãy sao lưu ngay ra m t b n khác, n u không, có th b n s m t luôn nó. Vì n u còn gi ư c b n sao lưu, b n có th c u c u ư c m t s giúp chuyên nghi p hơn, khi b n không th làm gì n a. 1. B n hãy m cái b ng tính b l i ó ra, v i phiên b n Excel cao nh t có th , và l i nh n lưu thêm m t l n n a, tuy nhiên i u này thì không c n thi t n u như b n ang dùng Excel 2007. 2. N u như b ng tính ã làm b ng cách trên ây không ho t ng, b n hãy c g ng m l i l n n a và lưu nó dư i d ng HTML (Single File Web Page) ho c HTM (Web Page). R i óng nó l i, và l i m ra, nhưng l n này thì lưu l i v i d ng bình thư ng (*.xls ch ng h n). Khi lưu d ng HTML ho c HTM, b ng tính c a b n s b m t nh ng th sau ây:
  • 47. • V i nh ng b ng tính t o ra t Excel 2007: - Nh ng tính năng m i c a Excel 2007 - Các PivotTable và các bi u (chúng v n ư c lưu l i, nhưng s m t h t khi b n m ra và lưu l i v i d ng bình thư ng c a Excel) - Các VBA Project. • V i nh ng b ng tính t o ra t nh ng phiên b n trư c Excel 2007 (Excel 2003, Excel XP,...): - Nh ng nh d ng s chưa dùng n - Nh ng style chưa dùng n - Các thi t l p Data Consolidation - Các Seriano - Các công th c s d ng ngôn ng t nhiên, chúng s ư c chuy n i thành các tham chi u dãy bình thư ng - Các hàm t t o - Các nh d ng g ch ngang ch (strikethrough), ch s trên (superscript), ch s dư i (subscript) - Các thay i có th h i ph c (b ng l nh Undo) - Các thi t l p nh d ng trang cho các bi u ã ư c nhúng trong b ng tính - Các danh sách cài t cho các ListBox và ComboBox - Các lo i nh d ng có i u ki n (Conditional Formatting) Ngoài ra, các b ng tính ư c chia s (shared workbook) trong nh ng phiên b n trư c Excel 2007 s không còn chia s ư c n a. V i các bi u , nh ng thi t l p cho "Value (Y) axis crosses at category number" trên tab Scale trong h p tho i Format Axis s không ư c lưu, n u như tùy ch n "Value (Y) axis crosses a maximum category" ư c ch n; nh ng thi t l p "Vary colors by point" trong h p tho i Format Data Series cũng không ư c lưu n u như bi u ch a nhi u hơn m t Data Serie. 3. Cu i cùng, n u như b ng tính ó v n không ho t ng, hãy c g ng m l i b ng tính ó m t l n n a, và l n này thì lưu nó v i d ng SYLK (lo i t p tin có uôi là *.slk - Symbolic Link). Nhưng hãy nh r ng, khi b n lưu d ng này, thì ch có Sheet hi n hành (active sheet) ư c lưu, do ó, n u trong b ng tính có nhi u Sheet, b n hãy làm thêm vài l n, v i m i l n m t Sheet, nh t tên cho nó sao cho d nh n bi t. R i l i m cái b ng tính *.slk ó ra, và lưu l i v i d ng bình thư ng (*.xls ch ng h n).
  • 48. Khi b n không còn m ư c b ng tính 1. N u như b ng tính b hư c a b n không th m ra ư c n a, b n hãy th dùng Microsoft Word m nó. Nghe thì có v bu n cư i, nhưng ôi khi, b n có th copy ư c m t vài d li u trong b ng tính này (dĩ nhiên t t c nh ng nh d ng, công th c, v.v... thì m t h t). 2. B n hãy m m t b ng tính m i, và t o cho nó m t Extenal Link (liên k t ngoài) n b ng tính b hư. Ví d : ='C:Documents and SettingsBNTTMy Documents[ChookSheet.xls]Sheet1'!A1 Copy liên k t này vào nh ng ô khác (s lư ng bao nhiêu thì tùy thu c vào trí nh c a b n v cái b ng tính ã b hư, nó có bao nhiêu hàng, bao nhiêu c t...), và cũng làm tương t cho nh ng Sheet khác (n u c n thi t). N u b n không nh ư c b t kỳ tên Sheet nào trong b ng tính ã b hư, b n c t o i m t Sheet v i ư ng d n chính xác, Excel s hi n th tên c a Sheet khi b n nh n Enter. Có th b n s th y ư c gì ó... 3. N u hai cách trên không em l i cho b n i u gì, b n hãy vào trang web Openoffice.org, download phiên b n mi n phí c a b ph n m m này v . Ngo i tr các tên trên menu và toolbar, Openoffice.org khá gi ng Excel, vì nó ư c t o ra cùng m t c u trúc b ng tính v i Excel (có n 96% các công th c trong Excel có th s d ng trong b ng tính c a Openoffice.org). Sau khi ã download phiên b n mi n phí c a Openoffice.org, b n cài t nó vào máy. R i dùng nó m b ng tính b hư c a b n. Trong khá nhi u trư ng h p, d li u c a b n s ư c ph c h i. Tuy nhiên, nh ng VBA code thì không còn gì c , vì các VBA code c a Excel không tương thích v i Openoffice.org. 4. N u s b n quá en, không th dùng Openoffice.org c u d li u, v n còn m t cách n a, nhưng b n ph i m t ti n. M t trong nh ng chương trình có th ph c h i khá t t nh ng b ng tính b hư là Corrupt File Recovery. B n hãy t i và cài t ph n m m này, ch y chương trình ExcelFix, nh n Select File, ch n b ng tính b l i, và nh n Diagnose ph c h i. B n s th y thành qu c a mình, và có th lưu l i b ng tính, n u như b n ã tr ti n b n quy n, còn n u chưa tr ti n b n quy n, thì b n ch có th xem ch không th lưu l i. S d ng Data-Validation khi danh sách ngu n n m trong m t Sheet khác S d ng Data-Validation là m t cách d nh t áp d ng m t quy t c nh p li u cho m t dãy d li u. Theo m c nh, Excel ch cho phép Data-Validation s d ng nh ng danh sách ngu n n m trong cùng m t Sheet v i dãy d li u s ư c áp d ng quy t c này. Tuy nhiên, v n có cách lách kh i chuy n ó. Chiêu này s giúp b n làm cho Data-Validation có th s d ng nh ng danh sách ngu n n m trong m t Sheet khác. Cách th nh t là l i d ng chính vi c t tên cho m t dãy c a Excel, cách th hai là s d ng m t hàm g i ra danh sách ó. Cách 1: S d ng Name cho dãy ngu n Có l cách nhanh nh t và d nh t vư t qua rào c n Data-Validation c a Excel là t tên cho dãy mà b n s dùng làm quy t c nh p li u. bi t cách t tên cho dãy, b n xem lo t bài này: S d ng tên cho dãy. Gi s b n ã t tên cho dãy s dùng làm quy t c nh p li u là MyRange. B n ch n ô (ho c dãy) trong b t kỳ Sheet nào mà b n mu n có m t danh sách x ra nh p li u, r i trong menu Data trên Ribbon, b n ch n Data Tools | Data Validation [E2003: Data | Validation]. Ch n List trong danh sách các Allow, và trong khung Source, b n nh p vào =MyRange. Nh n OK. B i vì b n ã s d ng m t Name làm List, nên b n có th áp d ng Data-Validation này cho b t kỳ Sheet nào.
  • 49. Cách 2: S d ng hàm INDIRECT Hàm INDIRECT() cho phép b n tham chi u n ô ch a d li u text i di n cho m t a ch ô. Và r i b n có th s d ng ô ó như môt tham chi u c c b , cho dù nó tham chi u n d li u trong m t Sheet khác. B n có th s d ng tính năng này tham chi u n nơi ch a dãy mà b n s dùng làm danh sách ngu n cho quy t c Data-Validation. Gi s , dãy ch a danh sách ngu n này n m Sheet1, trong dãy $A$1:$A$8. t o m t Dala-Validation, b n cũng làm nh ng bư c như tôi ã nói cách 1, nhưng thay vì gõ tên dãy vào trong Source, thì b n nh p vào ó công th c: =INDIRECT("Sheet1!$A$1:$A$8"). Hãy ch c ch n r ng tùy ch n In-cell drop-down ang ư c kích ho t, và nh n OK. N u tên Sheet c a b n có ch a kho ng tr ng, ho c có d u ti ng Vi t, b n ph i t tên Sheet trong m t c p nháy ơn ('). Ví d , gi s tên Sheet ch a danh sách ngu n là Sheet 1 (ch không ph i Sheet1), thì b n s a công th c trên l i như sau: =INDIRECT("'Sheet 1'!$A$1:$A$8"). Ch khác nhau so v i công th c h i nãy là có thêm m t d u nh y ơn (') sau d u nháy kép ("), và m t d u nháy ơn (') n a trư c d u ch m than (!).
  • 50. Xin m m t ngo c ơn: N u như có th ư c, khi g p nh ng tham chi u n tên Sheet, b n nên t p thói quen luôn luôn b nó vào trong c p d u nháy ơn. i u này, tuy ch ng có tác d ng gì v i nh ng tên sheet như Sheet1, DMHH... nhưng nó s giúp b n không bao gi g p l i, khi b n hay t tên Sheet có kho ng tr ng, hay là có b d u ti ng Vi t... Ưu i m và Khuy t i m c a c hai cách ã nêu trên t tên cho dãy, và dùng hàm INDIRECT, u có cái ti n l i và c cái b t ti n. Ti n l i c a vi c t tên cho dãy, là vi c b n thay i tên Sheet ch ng có nh hư ng gì n Data-Validation. Và ó chính là cái b t ti n c a vi c dùng INDIRECT, khi b n i tên Sheet, tên m i s không t ng c p nh t trong công th c dùng INDIRECT, cho nên n u v n mu n dùng công th c này, b n ph i m Data-Validation ra và s a l i tên Sheet trong công th c. Ti n l i c a vi c dùng INDIRECT, là dãy dùng làm danh sách ngu n c a b n luôn luôn n m yên ch ã ch n (A1:A8 trong ví d trên ch ng h n). Còn n u b n dùng Name, mà b n l tay xóa m t vài hàng (ho c c t) ngay ch ch a Name, thì b n ph i i u ch nh l i cho úng... i u khi n Conditional Formating b ng checkbox. M c dù Conditional Formating là 1 trong nh ng chiêu m nh c a Excel, nhưng mu n b t hay t t nó b ng ribbon hay menu thì khá b c b i. Bây gi ta bi n hoá b ng cách i u khi n b ng 1 checkbox gi ng như 1 công t c (ho c 1 cái toggle Button càng gi ng hơn). Conditional Formating có t i Excel 97, gán nh d ng cho nh ng ô nào tho 1 s i u ki n nào ó. i u ki n có th là 1 i u ki n v giá tr , nhưng ta có th tuỳ bi n nhi u hơn khi dùng i u ki n là công th c, d a vào ó ta có th thay i nh d ng cho nh ng ô này, khi có s thay i giá tr c a ô khác. 1. Dùng 1 Checkbox ho c 1 Toggle Button xem và n d li u: B n mu n m t vùng d li u nào ó ch hi n ra lúc c n xem, xem xong thì bi n i cho r nh. Trư c tiên b n ph i gán lên sheet 1 Checkbox ho c 1 Toggle Button. Trong Excel 2007, vào tab Developer, nh n Insert trong Controls - ch n Checkbox ho c Toggle Button trong Control Toolbox, trong Excel 2003 ch n trong view – Toolbar – Control Toolbox, v lên sheet 1 cái. Trong hình, tôi làm th 2 cái.
  • 51. ................. Nh n vào nút design, click ch n cái control b n v a v , nh n thêm nút Property. Trong c a s Property, s a dòng Caption thành View/ Hide, s a dòng Linked Cell thành $C$2. (c 2007 và 2003 như nhau, c checkbox và Toggle Button như nhau). Bây gi khi b n click ch n checkbox ho c nh n nút Toggle, ô C2 s l n lư t có các giá tr TRUE và FALSE. .................. Bây gi gi s vùng d li u c a b n g m 4 fields, trong ó b n ch mu n 3 fields hi n thư ng xuyên, còn field th 4 thì khi nào c n m i hi n ra xem, không c n thì d u i. B n ánh d u ch n vùng ch a field 4, trong 2007 b n vào tab Home, Conditional Formating, New Rule, ch n ti p “use a formula to determine which cells
  • 52. to format”, trong 2003 là Fornat - Conditional Formating - ch n ti p “Formula is”. Trong ô k b n, b n gõ: = $C$2=FALSE. Nh n vào nút Format, nh d ng font ch màu tr ng. Nh n OK và OK. Nh n nút design 1 l n n a thoát ta khõi ch design Mode. Và nh n nút toggle ho c click ch n cái checkbox xem k t qu .
  • 53. ............ N u b n không thích thì nh d ng ô C2 ch tr ng luôn, kh i th y ch TRUE, FALSE hi n lên. 2. T t m nh d ng màu cho ô: Dùng Conditional Formating nh m tô màu ô theo i u ki n giúp ta d tìm ư c nh ng ô có giá tr c bi t cho trư c. Excel 2007 có nhi u nh d ng khác nhau cho giá tr s n m trong kho ng cho trư c. Nhưng bi n pháp m t t b ng checkbox là không có s n. Tương t như ph n trên, ta t o ra 1 checkbox ho c 1 Toggle Button link t i ô $C$2. Nhưng l n này ta t name cho nó là IsFill ch ng h n. Ta cũng t name cho ô $A$2 là BeginNum và $B$2 là EndNum, v i A2 là gi i h n dư i thí d 100, và B2 là gi i h n trên thí d 1.000. Trong vùng d li u B5:B16, ta mu n giá tr nào n m trong kho ng BeginNum và EndNum s ư c tô màu. V y
  • 54. dùng conditional Formating như trên, ch n vùng C8:C18, l n này công th c là: =AND($C8>=BeginNum,$C8<=EndNum,IsFill) Ch n cho nó 1 nh d ng màu theo ý mu n. K t qu : khi nh n button ho c click checkbox thay i tr ng thái thành True, các ô ch a s trong kho ng (100, 1.000) s ư c tô màu, các ô còn l i không tô. Khi thay i thành False, các ô tr l i bình thư ng. ng th i, vì b n t công th c liên quan n BeginNum và EndNum, nên khi thay i 2 s này, k t qu tô màu cũng thay i. ............
  • 55. B n th y y, n u b n chưa xem bài này mà th y 1 file tương t c a ngư i khác, b n có th l m tư ng ngư i ta s d ng code c a VBA. S th c thì quá ơn gi n ph i không? ánh d u nh ng ô ch a công th c b ng Conditional Formatting Khi m t ô có ch a d li u, b n có th mu n bi t d li u trong ô ơn thu n là d li u nh p vào, hay d li u là k t qu c a 1 công th c. B n có th ch c n click ch n ô ó và xem trên thanh công th c. B n cũng có th dùng phím t t Ctrl + ~ chuy n qua l i gi a ch xem giá tr và xem công th c. Chiêu s 19 này s gi i thi u v i b n 1 hàm t t o, k t h p v i Conditional Formatting ánh d u ô ch a công th c. B ng cách này có th giúp b n tìm ra t t c nh ng ô ch a công th c trong s 10.000 ô mà không ph i ngó t ng ô m t. M c dù b n có th dùng 1 hàm có s n c a Macro4 trong Conditional Formatting, như sau: Trong h p tho i Conditional Formatting, ch n công th c, gõ công th c này: = CELL(“type”,A1). Nhưng h n ch c a vi c dùng hàm Cell() là công th c s t tính l i m i khi có s thay i nh xíu trong b ng tính. Vì Cell() là 1 hàm thu c lo i volatile. Khi Excel tính l i Cell() cho 10.000 ô như trên s khi n cho b n b c mình vì ch i. Do ó b n hãy dùng tuy t chiêu sau ây, ơn gi n, d làm và không ph i hàm lo i volatile: B n hãy nh n Alt – F11 vào c a s VBA, nh n chu t ph i vào This Workbook insert vào 1 module. Nh p o n code sau vào khung so n th o: PHP Code: Function IsFormula (CheckCells As Range) IsFormula = CheckCells.HasFormula End Function Do tính ch t c a Property HasFormula, hàm b n m i t o s tr v các giá tr lu n lý True, False. Nghĩa là khi b n gõ vào ô b t kỳ công th c = IsFormula(A1) s cho k t qu True n u A1 ch a công th c và cho k t qu False n u A1 ch a giá tr . óng c a s VBA l i, tr v b ng tính. Bây gi ánh d u toàn b vùng d li u c a b n (có th ch n dư ra m t s c t và dòng, phòng khi b n c p nh t thêm d li u) sao cho ô A1 là ô hi n hành. B ng cách như chiêu s 18, b n vào ư c ch c n thi t gõ công th c trong h p tho i Conditional Formatting, và gõ vào: =IsFormula(A1), sau ó nh d ng tô màu ho c i màu ch cho khác nh ng ô còn l i. Sau khi nh n OK b n s ư c k t qu là t t c nh ng ô ch a công th c s ư c tô màu. N u b n thêm ho c thay i 1 ô, n u ô ó tr thành công th c thì l p t c ô ó i màu. ôi khi b n không th y k t qu , vì anh Bill lanh chanh và ch m hi u, anh ta cho r ng công th c s d ng hàm c a b n là 1 text nên nh t s a thành : =”IsFormula(A1)”. V y b n ph i vào ch cũ s a l i. Bây gi m i khi b n s a ho c thêm 1 ô tr thành công th c, ô ó s có màu. ngư c l i, n u b n s a 1 công th c thành giá tr ho c thêm giá tr vào 1 ô, ô ó s không có màu. m ho c c ng nh ng ô ã ư c nh d ng có i u ki n Chúng ta thư ng h i: "Làm th nào tính toán v i nh ng ô ã ư c tô m t màu c th nào ó?" Câu h i này thư ng ư c nêu ra, b i vì Excel không có m t hàm bình thư ng nào thưc hi n ư c nhi m v này; tuy
  • 56. nhiên, nó có th ư c th c hi n b ng m t hàm t t o. V n duy nh t x y ra v i vi c s d ng hàm t t o, là nó không th l c ra b t kỳ m t lo i nh d ng nào ã ư c áp d ng b i vi c nh d ng có i u ki n (conditional formatting). Tuy nhiên, suy nghĩ m t tí, b n v n có th có ư c k t qu tương t mà không ph i c n n m t hàm t t o. Gi s r ng b n có m t danh sách dài nh ng con s trong dãy $A$2:$A$100. Và b n ã áp d ng nh d ng có i u ki n cho dãy ó: ánh d u nh ng ô nào có giá tr n m trong kho ng t 10 n 20. Bây gi , b n mu n l y ra giá tr c a nh ng ô th a mãn i u ki n mà b n ã thi t l p, và tính t ng c a nh ng ô ã ư c áp d ng nh d ng ó. Không có gì khó! B n ng nh ng ki u nh d ng ã ư c áp d ng chi ph i b n, nói cách khác, b n không c n quan tâm nh ng ô ó ư c nh d ng ki u gì. B n ch c n quan tâm n i u ki n áp d ng nh d ng cho chúng (trong trư ng h p này, là nh ng ô có giá tr trong kho ng t 10 n 20). B n có th dùng hàm SUMIF() tính t ng c a nh ng ô th a mãn i u ki n nào ó, nhưng ch m t i u ki n mà thôi! N u mu n có nhi u i u ki n, b n ph i dùng hàm SUMIFS() trong Excel 2007, ho c là dùng m t công th c m ng. ây tôi s nói n công th c m ng, vì nó có th s d ng trong h u h t các phiên b n c a Excel. V i trư ng h p ã ví d trong bài này, b n s d ng m t công th c m ng gi ng như sau: =SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100))) Khi nh p m t công th c m ng, b n ng nh n Enter, hãy nh n Ctrl+Shift+Enter. Khi ó, Excel s t ng thêm m t c p d u ngo c hai u công th c, gi ng như v y: {=SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100)))} N u b n t gõ c p d u ngo c ó, thì công th c s không ch y. B n ph i Excel làm vi c này cho b n. Và b n cũng nên bi t i u này: s d ng công th c m ng có th làm cho Excel tính toán ch m hơn, n u như có quá nhi u tham chi u n nh ng dãy l n. Trên di n àn này có r t nhi u các bài vi t v công th c m ng, b n có th tham kh o thêm. Ho c n u b n gi i ti ng Anh và thích nghiên c u sâu hơn v công th c m ng, b n hãy ghé thăm trang web này: http://www.ozgrid.com/Excel/arrays.htm. M t cách khác Ngoài vi c s d ng công th c m ng, b n có th dùng m t c t ph tham chi u n nh ng ô bên c t A. Nh ng tham chi u này s tr v nh ng giá tr c a c t A mà th a mãn i u ki n b n ã t ra (ví d : > 10, < 20). làm i u này, b n theo các bư c sau: Ch n ô B2 và nh p vào ó công th c: =IF(AND(A2>10, A2<20), A2, "") Kéo công th c này xu ng cho n ô B100. Khi các công th c ã ư c i n vào, b n s có nh ng giá tr n m trong kho ng 10 n 20 (xu t hi n trong c t B). Thêm m t chiêu ph : nhanh chóng "kéo" các công th c vào trong m t c t xu ng n ô cùng hàng v i ô cu i cùng ã ư c s d ng c a c t ngay bên c nh (trong trư ng h p này, là "kéo" t ô B2 n ô B100, là ô tương ng v i ô cu i cùng ã ư c s d ng trong c t A, ô A100), sau khi nh p công th c trong ô u tiên (ô B2), hãy ch n ô ó, r i nh p úp chu t (double click) vào cái Fill handle (là cái núm chút xíu n m góc dư i bên ph i c a ô ư c ch n, mà b n v n thư ng dùng "kéo" công th c) Bây gi , b n có th ch n b t kỳ m t ô nào mà b n mu n xu t hi n t ng c a nh ng giá tr th a mãn i u ki n ã ra, và s d ng m t hàm SUM bình thư ng (=SUM(B2:B100) ch ng h n). B n có th n (Hide) c t B i n u b n mu n. M t cách khác n a Cách dùng c t ph như tôi v a nói, ch c ch n là ch y t t r i. Nhưng, Excel còn có m t hàm cho phép b n s d ng hai ho c nhi u i u ki n cho m t dãy. ó làm hàm DSUM().