Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH Cho dù rằng, việc này có vẻ không cần thiết với những bảng tính nhỏ, nhưng bảo đảm rằng, nếu bạn quan tâm đến điều tôi vừa n
Trang 2www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
2
Các tuyệt chiêu trong Excel
PHẦN 1: Chương 1 và Chương 2
Chương 1 GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH 4
1 Tùy biến cửa sổ làm việc của bảng tính 10
2 Nhập dữ liệu đồng thời vào nhiều Sheet 13
3 Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định 16
4 Ngăn chặn các nhắc nhở không cần thiết 20
5 Ẩn Sheet sao cho người khác không thể dùng lệnh Unhide để hiện ra 23
6 Tự thiết kế một bảng tính mẫu (template) 24
7 Tạo chỉ mục cho các Sheet trong Workbook 28
8 Giới hạn vùng cuộn của bảng tính 32
9 Khóa và bảo vệ những ô có chứa công thức 35
10 Sử dụng định dạng theo điều kiện để tìm dữ liệu trùng 39
11 Tìm dữ liệu xuất hiện hai hoặc nhiều lần bằng công cụ Conditional Formating 41
12 Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể 42
13 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) 44
14 Gỡ bỏ những liên kết ma 45
15 Giảm kích thước file Excel bị phình to bất thường 47
16 Cứu dữ liệu từ một bảng tính bị lỗi 50
Trang 3MỤC LỤC
3
Chương 2 NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL 54
17 Sử dụng Data Validation khi danh sách nguồn nằm trong một Sheet khác 55
18 Điều khiển Conditional Formating bằng checkbox 57
19 Đánh dấu những ô chứa công thức bằng Conditional Formatting 60
20 Đếm hoặc cộng những ô đã được định dạng có điều kiện 61
21 Tô màu dòng xen kẽ 64
22 Tạo hiệu ứng 3D trong các bảng tính hay các ô 66
23 Bật, tắt chức năng Conditional Formatting bằng một checkbox 71
24 Dùng nhiều List cho một Combobox 72
25 Tạo một list xác thực thay đổi theo sự lựa chọn từ một list khác 74
26 Sử dụng chức năng thay thế (Replace) để gỡ bỏ các ký tự không mong muốn 77
27 Chuyển đổi con số dạng văn bản sang số thực 78
28 Trích xuất dữ liệu số trong một chuỗi bằng VBA 79
29 Tùy biến chú thích của ô bảng tính 82
30 Sắp xếp theo thứ tự dựa theo nhiều hơn ba cột 85
31 Sắp xếp ngẫu nhiên 86
32 Thao tác trên dữ liệu với Advanced Filter 87
33 Tạo các định dạng số cho riêng bạn 93
34 Tăng thêm số lần Undo cho Excel 99
35 Tự tạo danh sách để fill 100
36 Làm nổi các Subtotal của Excel 102
37 Chuyển đổi các hàm và công thức trong Excel thành giá trị 105
38 Thêm dữ liệu vào danh sách Validation một cách tự động 107
39 Ngày tháng trong Excel 109
40 Cho phép sử dụng tính năng Group and Outline trên bảng tính bị khoá 112
41 Bẫy lỗi để trống dữ liệu 114
42 Giảm danh sách xổ xuống của Validation sau khi chọn một 116
43 Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải 117
Trang 4www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
Chương 1
GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Trong quá trình thực hiện một bảng tính, chúng ta có thể mắc phải vô số lỗi, hoặc có thể mắc phải những sai lầm ngớ ngẩn, và thường không để ý tới những cái có thể giúp chúng
ta xử lý bảng tính nhanh hơn, gọn gàng hơn
Trước khi nói đến các Tuyệt chiêu của Excel, xin nói sơ qua một chút về một số thủ thuật
và quy tắc cơ bản, những điều sẽ giúp các bạn thực hiện những Tuyệt chiêu được nói đến trong các phần sau cách dễ dàng hơn
Excel là một phần mềm bảng tính rất mạnh, và bạn có thể làm được những điều không thể tin nổi với nó Nhưng không may, có nhiều người thiết kế bảng tính của mình với quá nhiều
sự "lo xa", cẩn thận quá mức cần thiết, và làm cho nó trở nên phức tạp hơn là nó đáng bị như vậy Phần mở đầu này sẽ mách cho bạn một số thủ thuật và quy tắc mà nếu bạn làm theo, bạn sẽ thấy chúng rất hiệu quả
Quy tắc 80/20
Có lẽ việc quan trọng nhất khi thực hiện một bảng tính là dành một thời gian để nghiên cứu, xem xét cách bố trí dữ liệu, tính trước những việc mình cần làm Và đừng bao giờ nghĩ rằng sau khi hoàn thành, tôi sẽ không cần phải thêm vào đó các dữ liệu hoặc các công thức khác, vì bạn sẽ luôn làm ngược lại
Điều này có nghĩa rằng, bạn nên dành khoảng 80% thời gian để lên kế hoạch cho một bảng tính và khoảng 20% thời gian để thực hiện bảng tính đó
Trang 5Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Cho dù rằng, việc này có vẻ không cần thiết với những bảng tính nhỏ, nhưng bảo đảm rằng, nếu bạn quan tâm đến điều tôi vừa nói ở trên, thì về lâu về dài, bạn sẽ tránh được những cực nhọc khi phải cứ phải sửa đi sửa lại bảng tính của mình, và dễ dàng thực hiện được những bảng tính lớn sau khi đã dành cho nó một thời gian để lên kế hoạch thực hiện Nên nhớ rằng, các bảng tính phải luôn mang lại cho người dùng những thông tin chính xác, chứ không phải là thông tin chỉ chính xác trong một trường hợp nào đó
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
Trang 6àng này sẽAdvanced Fi
MAX, v.v
ũng đừng qhững dữ liệ
ữa, là nên b
ẽ được dùnilter, hoặc d)
quan tâm đế
u kiểu số, v
ổi nó Nếu b
g đó là dữ likhi tham ch
ật ra nó là te
Chỉ có tiêu đ
ng các ô the
c ô đã được bạn nghĩ rằn
g cho một b
bỏ trống và
ng cho nhữdùng làm vù
ến việc can
và canh tráibạn thay đổ
ài hàng đầu
ững tính năùng điều ki
nh lề cho dữ cho những
ổi kiểu canhhay dữ liệu
ột ô, vì nhiề
n thay đổi k
g tính là đượ
t khi thật sựtrước theo knhập vào là hứa công thứ
n cùng (ít nhcao hơn vềcông thức
bị chuyển t
ểu số hay dữiếu đến mộchung, bạn
g
Trộn cá
là một công thứthể chạyđược trtrộn ô, năng Ce
nằm
Alignme
tên ở dư
mở ra htab Alig
Bạn sử của khu
Center A
Hoặc bạclick rồishortcut
và màu xámhất là 3 hàn
cả những dữthành dữ liệ
enter across
trong H ent, nhấn v
ưới cùng bhộp thoại
nment đượcdụng thanhung Horizon Across Sele
h được ngayhầm lẫn choong ô đó làhức đầu với
ên, thay vìdùng chức
t
g ư,
o ,
g
ô
g ố
g
ã
ì
c ,
→
i ẽ
i
c
n
ừ
-:
n
Trang 7à A1:H1048vào trong m
ói quen vô
ì ạch, thậm
ếu ra khỏi c
ập nhật tron
ước) hoặc sửnữa thường chậm khi d
ãy chuyển đtrái phía tr
8567, và bạmảng
cùng tai hạchí là khôncông thức, m
ng tham chi
ử dụng các Nxảy ra với
dữ liệu được
đổi chế độrên của bản
ột dữ liệu nàliệu từ A1 đ
những bảng
c cập nhật
tính toán củ
ng tính, rồi họn Manual
Manual Caculatio
IỆC VỚI BẢN
cho nó thamkiểm tra hàn
ào
đến H1000,
ữ liệu cần thbạn tạo tham
g tính lớn, m
Để giải qu
ủa Excel thchọn Exce
m chiếu troniếu của bạn vậy thì bạn s
nh xa nó B
có thể loại những dữ li
ng cách dùng
mà cấu hìnhuyết vấn đề hành dạng M
l Options →
07
n toàn bộ cánếu không n
yết định sẽ dbạn còn ph
Manual: Nh
→ Formulas
ác cột trongnói là hàng
dùng nhữnghải bổ sung
ức đến toàn
à A:H, hoặclắng gì khi
m cho bảngphần không
m vào sẽ tự
st trong Excel
hỏ, là Excelhường đượchấn vào nút
Trang 8hạy chậm lạoăn toăn vẵng thức ch
mă lăm tiếp?
hông ngần n
ằng cần phải
ạn nín suy nông thức m
ốt khi tham
hững dêy dữmảng tham c
ó dừng hẳn xcel có nhiề
ề cập đến tr
âc ô Ngoăi hức trín nhữ
com
H
ời khuyín đgiờ cũng có oân Manual
u muốn có
úc năo bạn ccđn nhắc xe
ại, bạn sẽ s
ăo câi thắng
ho nó chạy n
? Hầu như ngại đặt bả
i đặt bảng tnghĩ đến việmảng lă một chiếu đến
ữ liệu lớn, thiếu đến mluôn, vă bạ
ều hăm chuong chiíu th
ra, trong E
ững bảng dữ
Hình 3 - Chọn M
đó thì khôngnhững công
l, có thể bạnđược thôngcũng nhớ điem: Nếu nhsửa lại cần
g tay? Nghĩnhanh hơn,chúng tôi k
ảng tính củảnh của mìn
ệc thiết kế ltrong nhữnnhững ô riíthì hêy sử dụmột dêy dữ li
ạn bắt buộc puyín xử lý n
hứ 79: TrânExcel Help c
hư cần thắngthắng chđn
ĩa lă, khi b, hay lă đặt không bao g
a họ trong c
nh trong chếlại bảng tính
ng nguyín níng lẻ Như
ụng chúng ciệu lớn, hiệuphải dùng cnhững dữ liệ
g chđn bị kẹ
n, hay lă gỡ
ảng tính củ
nó văo chếgiờ lăm điềchế độ tính
ế độ tính toâ
h
nhđn của vấ
ưng nếu bạncăng ít căng
u suất của bchế độ tính t
h tổng (SUM
ay sẽ giúp bheo những t
ưng rất nhiềual Nếu nhthì mới lăm
Chúng lă múng để tham
CỦA EXCEL
ó Một bảng
g tính tronghưa hề đượchắc chắn lă
ê
y ,
Trang 9Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Hoặc bạn có thể sử dụng PivotTable, 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!
Trước khi kết thúc phần mở đầu, xin nói điều này: Nếu bạn chẳng nhớ được gì (vì tôi nói nhiều quá), bạn chỉ cần nhớ một chuyện thôi: Excel sẽ chạy tốt hơn nếu tất cả các dữ liệu của bạn được xếp liên tục với nhau trong cùng một bảng Nó sẽ giúp cho bạn thực hành các chiêu sau đây một cách dễ dàng hơn
-
Trong các bài, sẽ có một số biểu tượng sau:
Áp dụng cho tất cả các phiên bản của Excel Chỉ áp dụng cho Excel 2007
Chỉ áp dụng cho những phiên bản trước Excel 2007 Chỉ áp dụng cho Excel 2003 và Excel XP
Chỉ áp dụng cho Excel 2000 Những chiêu dễ, dành cho mọi người
Những chiêu tương đối khó, dành cho những ai có trình độ khá trở lên
Những chiêu khó, dành cho những ai đã sử dụng thành thạo Excel
Các mẹo giúp cho bạn làm việc với Excel nhanh hơn
Các chú ý, cảnh báo
Trang 10ĐmTrchĐ
Từ
Al
chN
phapexcel.c
ôi khi làm màn hình củarong bài nàyhức
ầu tiên, bạn
ừ cửa sổ làm
ll (Excel2003
họn thì hãy Nếu chọn kiể
h một tập tin
Excel, bạn
m cho nó dễcách thực h
t cả các bản
bảng tính cùntin bảng tính
có thể cần
ễ dàng sử dụhiện tổ chức
ng tính mà b
ng một lúc, bạcần mở → n
tính đang mNếu tùy chọkiểu sắp xếpch) thì các c
n phải có nh
ụng hơn ha
c cửa sổ làmbạn cần làm
ạn vào Office →nhấn nút Open
mở nào đó, c
ọn Window
p và nhấp núcửa sổ làm
c cửa sổ kiểu Til
w để sử dụng
một Workboiệu từ nhiềucách gọn gà
trong khi 003: File
e
c
Trang 11-Hình 6
KHI LÀM V
nằm ngang)
- Sắp xếp các cửg) thì các bả
Trang 12N
KchĐbư
(E
lưMhaMbảĐtạchbạNkhbảmkh
phapexcel.c
Nếu chọn kiể
Khi các cửa huyển dữ liệ
ể sử dụng l
ước thực h
Excel2003: Fil
ưu và nhấn nMuốn chuyển
ai lần lên tMaximize trê
ảng tính sau
ể sử dụng l
ạo thì giao dhỉnh hay cậ
ạn lưu lại khNếu mỗi ngàhuyên bạn n
ảng tính đó
mở tập tin xhông cần ph
com
ểu Cascade
sổ bảng tín
ệu giữa các lại các thiết hiện như sa
e → Save W
nút OK Tập
n đổi một bthanh Title
ên cửa sổ bả
u khi đã hoàlại không gidiện làm việ
ập nhật thôn
hi bạn ra lện
ày, bạn đều pnên dành mtùy thuộc vxlw cho kiểhải tốn thời
e (thác nước
Hình 7
nh đã đượccửa sổ
lập này sauau: Chọn ng
Workspace…)
p tin Worksp
ảng tính nà(tiêu đề)
ảng tính hiệ
àn tất công vian làm việ
ệc được bạn
ng tin trong
nh đóng Wophải thực hmột ít thời gvào yêu cầu
ểu không gigian sắp xế
c) thì các bả
7 - Sắp xếp các c
c sắp xếp g
u này, bạn cgăn View →
→ nhập tênpace sẽ có p
o đó về chếcủa cửa sổ
ện hành để pviệc với cửa
c đã thiết lậ
n thiết lập t
g các bảng torkspace
hiện các côngian để thiế
u tao tác và xian làm việc
ế độ toàn mà
ổ bảng tínhphóng to cử
a sổ đó
ập trước đótrước kia sẽtính của Wo
ng việc lặp đ
ết lập các k
xử lý số liệu
c phù hợp vcác bảng tín
CÁC TUY
Tùy biến cửa s
xếp đè lên n
cade bạn sẽ rất d
đi lặp lại trêkiểu không
u của chúngvới nhu cầu
ộp File Nam
bạn chỉ cầncũng có thnhấn nút Clo
ần mở tập ti
i phục Tất
ẽ được Exce
ên nhiều bảngian làm vi
in xlw vừa
cả các hiệu
el nhắc nhở
ng tính Tôiiệc cho cácbạn chỉ việccủa bạn mà
i
c
c
à
Trang 13nói đến cônmột lúc chắhạm vi Wor
Khi có 2 ha[Group] (trotrạng groupthường thì bviệc đã xonghàng loạt và
ằng tay
các bạn chỉnhấn Ctrl, v
p các Sheets Tbạn không để
p cái đã nhỉngười chưa
ỉ việc click vừa nhấn vàcái gì vào Snhóm Điệp
n chỉ việc hSheet trongcác Sheet ra
t group với nông) Nhìn vào
rừ khi bạn có c
ể ý đến dấu hi
hế tôi khuyên phải ungroup
ỉ? Công cụ
a dùng đến
chọn Sheet
ào tên nhữnSheet hiện h
ệu này, bạn sbạn ngay khi chúng ngay
Excel sẽ có chữ
NG TÍNH
nhiều Sh
dữ liệu muốn các Sheet lạ anh chóng v
Group dùn
Nó dùng để
t thứ nhất, n
ng Sheet kháhành, dữ liệtất nhanh ch
ng thao tác n
sau tên của bản
nhiều Sheet nhập dữ liệu hơn nếu bạn
dữ liệu vào
ác Sheet với
nhập liệu từmuốn nhập
Trang 14www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
Nhập dữ liệu đồng thời vào nhiều Sheet
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 một 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?
Group các Sheet lại một cách tự động
Bạn có thể giải quyết vấn đề trên bằng cách dùng một đ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 một 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 một ô, 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à một Sheet đang chọn thì đúng; nếu không bạn phải tìm đúng Sheet bạn cần và double-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:
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
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 một ô 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 Sheet 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ẽ
Trang 15Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Nhập dữ liệu đồng thời vào nhiều Sheet
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:
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 thứ hai hoạt động khác với đoạn code thứ nhất Khi bạn thay đổi nội dung của một ô 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ả
Hình 9 - Đoạn code này phải được đặt trong khung soạn thảo của riêng Sheet5
Trang 16www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
thực hiện một số hành động nào đó nhất định
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ừ phi 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
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 (Excel2003: Tools → Macro → Security) Nếu đặt mức độ an toàn là Disable all macros with notification (Excel2003: 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 (Excel2003: 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 (Excel2003: 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
CHIÊU
3
Trang 17If S l W W C I C End End Su
p đoạn codlưu lại bảng
te Sub Work an)
lReply As SaveAsUI = Reply = Ms Workbook as Workbook?"
Cancel = (l
f Cancel = Cancel = Tr
s another , vbQuesti lReply = v
= False Th rue
trl+S (hoặc (hoặc gọi ltính này dướ
KHI LÀM V
ính, bạn hãy
ào mục Th
ượng Excel ở y)
ew Vode để mở
007, mà trên R, nhấn chọn ton
vào cửa sổ V
oreSave(By
n rry, you a _ name."
ion + vbOK vbCancel) hen Me.Sav
ở ngay bên trá
của sổ VBA cho
Ribbon của bạntab Popular, r
khi nhập xo
sUI As Boo
lowed to s wish to s
ảng tính củagặp một cảkhác, trừ ph
ong, nhấn A olean, Can
save this _ save this _
ình thường
ói rằng bạniệu hóa các
Trang 18www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
thực hiện một số hành động nào đó nhất định
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 enable Workbook), có phần mở rộng là *.xlsm, chứ không thể lưu ở dạng bình thường (*.xlsx)
(macro-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
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 in được và sẽ thấy một thông báo ngăn cản 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:
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
Trang 19Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
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 (Excel2003: 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
Hình 11 - Protect Structure and Windows để ngăn chận việc chèn thêm Sheet
Trang 20Cchbả
Th
LỗxómW
KVchVkhlạCh
Al
Nph
Khi bạn ghi mVào lúc mở húng rỗng hViệc xóa cáchông xóa cáạnh Do vậyhọn ngăn D
lt+F11 (Exce
Nếu không thhím Ctrl+R
nh báo mà tôoạt động ha
sẽ tự động kícNếu mức an tcác macro tự đ
một macro, một bảng thay đang chứ
c macro của
ác module –, bạn cần ph
ể xóa (Exce
vẫn cảnh b
được thông botification (Exoàn được thiết
ch hoạt mà khtoàn là Disablđộng bị khóa l
Excel chèntính, Excel
ứa các mã l
a bảng tính– giống nhưhải xóa đi c
ong chiêu nhoặc là các
ết lập là Enableông có tiếng k
le all macros lại không được
n một modukiểm tra xelệnh
ng Workbo
hi macro trongăn Deve
→ Macro →
rong Workb
macro khi thMedium)
e all macors (Ekêu cảnh báo
iết lập mức aExcel2003: mứ
fication (Excelhi
hứa các lện
nh có chứa
lệnh chứa
ữa và bỏ lạiướng dẫn sau
hưng trong
ứa macro
n toàn là Disa
ức Low) thì các2003: mức Hi
nh của bạn vmodule nào
bên trong
i vỏ hộp sữu:
l hỏi bạn có
a một trang
c dù bạn đã
→ chọn cáccác lần mở
able all
c macro gh) thì
à
à ủ
m
p
Trang 21Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Ngăn chặn các nhắc nhở không cần thiết
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 (Excel2003: Tools → Macro → Record NewMacro) với tùy chọn Personal
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()
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
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(Excel2003: Window → Unhide), chọn Personal.xls từ hộp thoại Unhide View → Unhide và nhấp nút OK Hình 13 - Hộp thoại Record Macro
Trang 22www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
Ngăn chặn các nhắc nhở không cần thiết
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
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 (Excel2003: 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:
' MyMacro Macro ' Deletes the Active Worksheet '
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
Trang 23Đôi khi b dùng đọc liệu, công
bạn không m
ion, Combo
tin nhạy cả
→ Hide tronglàm cách k
để trở về trađược bằng c
mat → Sheet →
ong Excel 2007
chức năng k
ững ô chứa hãy thiết lập
xcel2003: For
ông thể chọ
Hình 15
-ính, nhưng nối với nhữ
i cho Sheet d
+F11 để vàobên trái tro
o trang soạnong khung
o ai nhìn thấy
vùng làm dlàm const t
ó bằng cáchnhưng sẽ tốt
g mục chọn
el 2003
y Hơn nữaanh công cụ
o ,
h
t
n
a ụ
:
u
n ờ
→
Trang 24Kđể
Ne
đó
NthviVtrúnộxónh
Và, trong côn
úc giống nh
ội dung và l
óa luôn cả những thao tá
à, có khi nàbảng tính m
n ra một kiể
ng tính này
Hình 16 - Chọn
ừng thấy, đdụng của n
và trình bày
ng việc, nếhau, tôi nghlưu lại với tnhững công
es của Excel.
ào bạn sử dmới, thì bạn
ểu bảng tínhthành cái c
nút Office, thiết kế sẵn
CÁC TUY
hiết kế một b
mẫ ẫ u (tem
ùng một kiểu tính mẫu cho àng nào đó,
ộp thoại riên
ông? Nghĩa chọn lệnh trong thư v
hư viện Templat
hững bảng tính đã có, x
đôi khi do sphải mất th
sơ ý, bạn sẽhời gian cho
o
Trang 25ó thể tạo ra khó Bạn m
ng của bạn, thời gian C
KHI LÀM V
ện sẽ làm mloại bảng tíbạn chỉ việclấy một cáChiêu thứ 6
g tính đã có
12 (Save as
IỆC VỚI BẢN
một cái giốnính nào đó
c vào trong
ái mẫu ra rồnày sẽ giúp
ờng bạn vẫniết, chỉ giữ
ó sẵn, xóa h
s ) rồi chọn
NG TÍNH
ng như nhữn(một bảng l
g Thư viện T
ồi chỉ việc n
p bạn thực h
ct), có nghĩàng và cột vcel 2007:
rong Excel 2007
ại thành mộcái sườn: t
n làm, nhưnlại những Shết những d
ĩa là bạn sẽ với các tiêu
7
ột Template
tô màu, địn
ng khoan nhSheet đã đư
dữ liệu thô,
mplate
e có sẵn củabảng chấmthậm chí là
ược thiết kế, chỉ giữ lại
y
t
u ế
i
Trang 26BtínM
New(Excel20
ng tính mẫuchọn mẫu b
003: File → N
u mà bạn đãbạn cần, rồi
ưu với dạnghọn tiếp My
lưu lại như
Trang 27ẫu, thay vì mẫu không
ts and Settin
à tên của A
Excel chỉ liệtkhi cài đặt
ngs\Owner\
Acount mà bnày, nhưng
t kê những lại Window
chép các bảiếp
t tab My Te
cả vào một
ab "Báo cáo
Khi bạntôi đã trchọn thư
New Fol
Một hộpnhóm bimột nhó
sẽ dùng nhấn OK
là xong
\Applicationbạn đã tạo rkhông đượ
ws, có thể bVậy, điều l, cất giữ c
ản sao vào đvào trong hộp t
o thuế", tab
n nhấn F12 đrình bày ở
ư mục lưu t
der
p thoại sẽ miểu mẫu mà
óm là "Báo
để in ra cá
K, đặt tên crồi đó
n Data\Micr
a khi sử dụ
c Khi chọnnào nằm ở trbạn sẽ mất hlưu ý ở đây cẩn thận S
đúng chỗ củthoại New
tự động, bạ
mở ra, và bạn
à bạn muốncáo thuế" đ
te, và nhấn
Tôi mở bạn xemhình 21)không,
sổ New
thêm m
là Báo
Hay chứMột đichắc thừa Tấ
Templat
thư mục
tự tạo rnày, đề
cái tên cho
ôi tạo thêm
trên đây mà
m trong thư
ững bản saocài đặt lại
ờng dẫn trên
,
u
g ư
i
w
à ư
o
i
n
Trang 28Sửtromtach
Tạ
CnhcáChtấWcô
Tạ
Msẽ
phapexcel.c
ử dụng mộtong bảng tímuốn đến mà
ất Phương Worksheet kông tác bảo
để thuận
t chỉ mục cáính, vì chỉ
à không lo tạo ra bởi m
ng các hàm
c thủ công
dễ làm, bạn
dex Sau đókết (hyperli
in This Doc
pháp này không có sựtrì trang ch
ng tính nào đ
n tiện cho việc
ác trang tínvới một cú
ument và cphù hợp k
cho các S
nhiều thời gi nh), bạn sẽ cả
hèn mới mộvào tên của
c Worksheechọn tên Shkhi bảng tínhường xuyê
h 22 - Hộp thoạ
sử dụng V
VBA để tựmục liên kết
nh không c
ên, nếu khô
ại Insert Hypelin
p một chỉ mụ
g tính.
anh chóng v
ẽ đưa bạn đchỉ mục tro
ơn tùy chọn)
et và đặt chosheet có tron
g với tên màkết nối tới
có quá nhiông sẽ gây r
nk
ra các chỉ mcác Works
YỆT CHIÊU C
ác Sheet tron
rkbook
(bảng tính) v khăn trong v
ục các trang t
và dễ dàng đ
đến chính xong một vài
CỦA EXCEL
ng Workbook
với rất nhiều việc tìm kiếm tính đang có
điều hướngxác nơi bạncách: bằngcảnh (thậm
ái tên, ví dụ
ok và tạo
OK để hoànheet và tên
Trang 29Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Tạo chỉ mục cho các Sheet trong Workbook
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ỉ mục 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:
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
Lưu ý thêm, 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
Cách thêm thuộc tính Hyperlink base: Vào Office → Prepare → Properties → Document
Properties → chọn Advanced Properties(Excel2003: File → Properties → Summary) và nhập vào khung Hyperlink Base Ví dụ, nhập vào: http://www.giaiphapExcel.com/
Trang 30Th
CcávùN
nh bất kỳ
11 để mở c
ok:
te Sub Work Target As cCont As Error Resu
23 - Thêm thuộ
4 - Siêu liên kết
ục vào trìn
ng dẫn bạn orkbook và cửa sổ VB
kbook_Shee Range, Ca CommandBa ume Next
ộc tính Hyperlin
t trước và sau kh
h đơn ngữ
thêm một lệbạn có thể
BE, sau đó
etBeforeRi ancel As B rButton
ghtClick(B Boolean)
Trang 31End Sub
oạn mã này
iếp theo, bạ
Sub In Appl End Su
h cCont Caption = OnAction = With
b
y sẽ gọi than
ạn vào Inser
ndexCode() lication.C
ửa sổ VBE rong bất kỳ
ạn điều hướ
KHI LÀM V
s("Cell").
n.CommandB , Temporar
ớng đến bất
IỆC VỚI BẢN
.Controls(
Bars("Cell ry:=True)
cứ Workshe
NG TÍNH
"Sheet Ind l").Control
dex").Dele ls.Add _
trình đơn nnày
Trang 32CvàdụliệcumBđị
Dấ
Cdò
ùng cách đơmột vùng cho
ới hạn chỉ cngoài vùng đ
00 và đến l
ơn giản là d
o phép xem
ững dòng vhấn chọn dò
có số cột tố
(trước đó là
cho người d
đó Ngoài ralượt người
dấu (Hide) n
m hoặc chỉ kí
và cột khôngòng dưới nócùng (1.04
xcel2003: For
ng cách ẩn các h
củ ủ a bảng
ộn kéo bảng nào đó mà kh
ủa bảng tính
ối đa 16.384
65.536) Nhdùng xem tr
a nó còn hạkhác la làn
những dòngích hoạt vùn
g dùng đến
ó, nhấn thêm8.576) Sau
4 (Excel trước
hưng thườnrong một ph
vi bạn cho p
c đó là 256, t
ng thì bạn hhạm vi nào
ai đó vô tìnhmãi chẳng
Làm tươvậy để cột kh
đến: tìmclick chbên, nh
Shift + sang p
Hide colu
Kết quả26: vùng
bị trùm tăm tốquanh v
có thể kđược nữ
CỦA EXCEL
ủa bảng tính
a phải nhiều, ùng xem, bạn phép.
từ A đến IV),hiếm khi sử
đó, còn dữ
h kéo thanhthấy cái gì
m cột cuối,họn cột kếhấn Ctrl + mũi tên phải, chọn
umns
ả như hình
g làm việcmột màu
ối chung
và chẳng aikéo đi đâu
Trang 33CỰC NHỌC
Xá
BcóTNchtrtìmdụQcólàTtíntakíSh
Pr En
Bvùbao quanh tmột ô nằm
g chỉ để thèm
ạn code VB
ép, hoặc chọoạn code trê
ollArea =
ollArea =
ScrollArea Select nt.Bold = T
KHI LÀM V
ác định mộ
Bằng cách sử
ó thể ấn địnhực hiện nhNhấn chuột họn View co
rong cửa sổ
m dòng Scr
ụ: $A$1:$HQuay trở lại
rivate Sub Me.Scrol
nd Sub
Bây giờ mỗiùng giới hạntăm tối nhưngoài vùng
b Workshee lArea = "A
và thử kéo tdòng 50 và
ược nữa
lưu tính c
e lên phải scode thực hvùng soạn
sự kiện Wo
t_Activate A1:H50"
hoạt bảng t
g muốn
nhưng bạn cũng không
ng đó có câudòng, cũng
ỉ vùng mong
thanh cuộn,cuộn ngang
chất này khset Propertyhiện điều nthảo code
orksheet_ac
e ()
tính, VBA
không thể nđược, kể cả
u lệnh seleckhông chọnlệnh:
ty
g VBA, bạnmong muốn
,
t ,
Trang 34www.giaiphapexcel.com CÁC TUYỆT CHIÊU CỦA EXCEL
Giới hạn vùng cuộn của bảng tính
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"
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:
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:
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 một cách thoải mái, thì dùng một đoạn code nhằm reset vùng cuộn bằng nguyên Sheet:
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 một 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 một Sheet khác xong quay lại Sheet này, vùng cuộn lại bị giới hạn bởi đoạn code trên (Worksheet_Activate())
Trang 35bảng tính, t
ho mọi ngườhững ô có c
h Tuy nhiên
ức, mà nó k Đôi khi, bạ
n những ô cháp để thực
on cho các
chứa công
nh, tất cả c
gì trừ phi bạcho bảng tí
thường chún
ời, có thể bchứa công th
n, Protect bkhông cho c
ạn lại khônchứa dữ liệu
ng ta sẽ phảbạn muốn rhức Cách dbảng tính khcan thiệp và
ải dùng đếnrằng, không
dễ nhất là chông chỉ ngă
g tính của bạn
n một số côn
g ai có thể cũng phổ biế
ăn không chhĩa là khôngchỉ muốn b
hứa công thứtắt chức năn
hóa (locked
h Đây là cá
ng thức thì
nhấn vào cáchọn Form
p vào các ôlàm gì bảng
Trang 36Sa
(E
HTrchchthth
V
Ce Sh
hì bạn đánhhấy) thì đánh
Cells đã nói
ch ẩn luôn c
al
bon, nhấn vrên Ribbon
trong nhómvào Protect
L
c
l
Trang 37n, bạn hãy crên Rồi, vớ
ta trên Ribbotect Sheet
Vậy lđược
Hidde
Sử dụ
Sử dụvào nthức
bạn, n
ô chứ
g thức, hoặcđược gì nhihọn những
ới những ô cbon (Excel2
en, bạn khôn
ụng Data V
ụng Data V
những ô có cTuy nhiên,nghĩa là trán
ứa công thức
c dán vào nhiều Nhưng
ô chứa ô côchứa công t
003: Data →
IỆC VỚI BẢN
b Home trên Ri
ại Protect S lls, chỉ cho khóa), và n
bây giờ, nh thể không
ng lo những
Validation
Validation, cchứa công t phương ph
nh việc táy
c, chứ thật rhững ô đó bcũng xin nóông thức bằthức đang đ
→ Validation)
NG TÍNH
ibbon
Sheet, bỏ đphép Selec
nhập vào m
hững ô chứaxem thấy đ
g công thức
n
chỉ là đơn gthức, nghĩa háp này chỉ máy sửa lại
ra, mặc dù đbất kỳ dữ liệ
ói sơ qua về
ằng chức năđược chọn, b Trong hộp
đánh dấu ở
ct unlocked
một passwor
a công thứcđược nếu b này bị can
giản không
là không chphòng ngừa
cho ghi đè
ho sửa công
a cho chínhrong những
thích Nóiháp này:
i
à
n
b
Trang 38vệđộĐkhphkh
NmNthchH
phapexcel.c
ệ bảng tính
ộng tắt chức
ể bắt đầu, bhóa, còn nhháp thứ nhấhóa ở trong
Privat
If T M Else M End End Su
Nếu không cmuốn PasswoNếu bạn lo rằ
hể bảo vệ cáhọn tab Prop
Hình 33 - Hộp th
com
(Protect) m
c năng bảo vbạn hãy chắhững ô khô
ất Sau đó,
đó, rồi nhập
te Sub Work Target.Loc Me.Protect
e Me.Unprotec
If
ub
cần đến pasord là thứ g
ằng người t
ác code này
perties, chọ
Tuy nhiên, pbạn được phcode sẽ chỉ nói thêm, cthôi, là ô đa
Vì lý do nàythì người đóđược tự độn
hoại Data Valid
mỗi khi bạn c
vệ khi bạn c
ắc chắn rằng
ng cần bảobạn nhấn A
p vào trong
ksheet_Sel cked = Tru Password:
để tham chiếcho dù bạn ch
ng có màu kh, nếu một ngư
Tự đ
Phươchọn một ô chọn một ô
rd:="Secre
n không cầnsửa lại chữ
o trong khu
o xem) bằn
ject for View
này cũng khôbảo vệ các công
ếu đến ô đanghọn một dãy,
ác với những ôười nào đó chọtoàn bộ dãy ô
ức, sẽ có m
ho bạn nhậnày không c
ư dán đè th
ắt chức nă
này, sẽ tự độhóa (lockedhóa
óa Target được
y tại thời điểmdãy đó, chỉ có
c ô (với ô "actkhi đó thì chức
ập vào Xincấm việc xó
hứ gì đó và
ăng bảo vệ
ộng bật chứd), nhưng nó
ứa công thứ
đã trình bàymuốn bảo v
khóa), tect đã
g
ô
o ự
Trang 39hường xuyên
m thủ công c
ày dễ dàng
bạn có một bhọn ô trên cù
n phải nhậncông việc nàhơn, bạn c
bảng dữ liệùng bên tráuan trọng, v
về trước
ùng lắp dữ limất nhiều thờbiến công c
$A$1:$H$1(A1) và kéo
à nhập công
g ự
Trang 40N
Pa
vùThTr
ô nhth
ĐtroCh
Du
Trch
phapexcel.c
Nhấn chọn n
atterns Nhùng dữ liệu heo bảng sốrong công tcần kiểm t
uplicate Val
rong hộp thhọn định dạ
ra trong vùExcel sẽ tựông thức địn
ạng theo điềùng địa chỉ
ự động nhận
nh dạng theohức là: =C
hức là: =C
hức là: =C
hức là: =C
ện trong ExCác bước th
ào ngăn Hom
n biết địa c
o điều kiện
COUNTIF($A COUNTIF($A
COUNTIF($A COUNTIF($A
xcel 2007 đhực hiện nh
hỉ ô làm đitại các ô nh
A$1:$H$100 A$1:$H$100
A$1:$H$100 A$1:$H$100
0,B1)>1 0,B2)>1
g
→
à