SlideShare a Scribd company logo
1 of 61
Download to read offline
Bắt đầu với
VBA cơ bản
họcExcel.Online
select * from [EXCEL]
Hello VBA
họcExcel.Online
select * from [EXCEL]
Cảm ơn các bạn đã quyết định chọn cuốn sách này. Có thể vì tò mò, có thể
vì muốn thử học 1 kiến thức mới, dù bạn đang ở trong trạng thái nào thì
cuốn sách này sẽ mang lại cho các bạn một sự bắt đầu nhẹ nhàng nhất với
ngôn ngữ lập trình VBA được sử dụng rộng rãi trong các phần mềm tin học
văn phòng, đặc biệt là Excel. Qua cuốn sách này, bạn có thể hiểu được cơ
bản VBA là gì, thậm chí còn có thể bắt đầu áp dụng những kiến thức trong
sách để phần nào nâng cao năng suất làm việc của mình.
Nếu bạn muốn tiếp tục tìm hiểu sâu hơn, áp dụng được nhiều hơn, tiết kiệm
nhiều thời gian hơn, học 1 chương trình đã được các tổ chức như VPBank,
VietinBank, KPMG tin tưởng và sử dụng. Hãy đăng ký khoá học VBA101 -
Lập trình VBA cơ bản cho người mới bắt đầu của Thanh tại địa chỉ:
http://bit.ly/2eEOWsZ
P.S: Sau khi đọc xong, mong các bạn để lại feedback, reviews, nhận xét để
nội dung có thể hoàn thiện tốt hơn.
Sách chỉ được xuất bản duy nhất tại địa chỉ trang web:
https://hocexcel.online
Các file, các đoạn code ví dụ trong sách này có thể được tìm thấy ở đường
link sau đây
https://github.com/ndthanh/vbabook
Về Thanh:
https://www.linkedin.com/in/ducthanhnguyen/
Trang chủ:
https://blog.hocexcel.online
họcExcel.Online
select * from [EXCEL]
Nguyễn Đức Thanh:
- Trình bày
- Thiết kế bìa
- Viết nội dung
- Thiết kế trang
- Xuất bản
Cập nhật nội dung: 23/07/2017
họcExcel.Online
select * from [EXCEL]
1. Excel Macros là gì? 01
2. VBA là gì? 01
3. Làm thế nào để bắt đầu? 01
4. Sử dụng chức năng Macro Recorder 05
5. Ứng dụng của VBA / Macros 13
6. Làm việc với đối tượng Workbook 14
7. Làm việc với đối tượng Worksheet 19
8. Làm việc với đối tượng Range 23
9. Thuộc tính Cells của đối tượng Worksheet 30
10. Biến số và kiểu dữ liệu 31
11. Cấu trúc IF trong VBA 35
12. Cấu trúc WITH … END WITH 39
13. Vòng lặp trong VBA 40
14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets 48
15. Tổng hợp dữ liệu nhiều sheets vào 1 sheet 51
16. Làm việc với mảng trong VBA 52
17. Sub và Function trong Excel 54
18.Hàm người dùng - UDF (User defined function) 55
họcExcel.Online
select * from [EXCEL]
1. Excel Macros là gì?
2. VBA là gì?
3. Làm thế nào để bắt đầu?
Excel Macros là những chương trình nhỏ giúp lặp đi lặp lại những thao tác
từ đơn giản đến phức tạp một cách tự động trong Excel. Ngoài Excel
Macros, chúng ta còn có thể gặp Word Macro, PowerPoint Macro, Outlook
Macro …
VBA viết tắt của Visual Basic for Applications, là một ngôn ngữ lập trình đi
kèm với một số phần mềm của Microsoft, trong đó có Excel, Word,
PowerPoint, Outlook, …
Để bắt đầu với Excel Macros nói riêng hay Macros nói chung và ngôn ngữ
lập trình VBA, chúng ta sẽ đi mở trình soạn thảo VBA. Để mở trình soạn
thảo VBA, các bạn hãy theo từng bước sau đây
1. Trong Excel, bấm chuột phải vào Ribbon và chọn mục Customize the
Ribbon …
01
họcExcel.Online
select * from [EXCEL]
2. Trong cửa sổ Excel Options, chọn mục Customize Ribbon bên tay trái.
Trong Main Tabs, tích vào lựa chọn Developer rồi nhấn OK
3. Kết quả của bước số 2, thẻ Developer đã được hiển thị trên Ribbon của
Excel
02
họcExcel.Online
select * from [EXCEL]
4. Để chạy được file Excel có chứa Macros hoặc code VBA, tuỳ chỉnh về
Macro Security cần được thiết lập như sau. Trong thẻ Developer, bấm nút
Macro Security
Trong cửa sổ Trust Center, thiết lập các lựa chọn như hình vẽ
03
họcExcel.Online
select * from [EXCEL]
5. Đến bước này, file Excel đang làm việc cần được lưu dưới dạng có hỗ trợ
Macros hoặc code VBA với phần mở rộng là XLSM. Để thực hiện việc này,
trong Excel, chọn thẻ File > Save as … hoặc sử dụng phím tắt F12 trên bàn
phím
Đến bước này, file Excel đã sẵn sàng cho việc sử dụng với Macros hoặc
VBA.
04
họcExcel.Online
select * from [EXCEL]
4. Sử dụng chức năng Macro Recorder
Chức năng Macro Recorder sẽ giúp chúng ta rất nhiều trong việc học VBA.
Để ghi 1 macro đầu tiên: chọn thẻ Developer > bấm nút Record Macro
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
05
họcExcel.Online
select * from [EXCEL]
4. Sử dụng chức năng Macro Recorder
Chức năng Macro Recorder sẽ giúp chúng ta rất nhiều trong việc học VBA.
Để ghi 1 macro đầu tiên: chọn thẻ Developer > bấm nút Record Macro
Trong hộp thoại Record Macro, chúng ta có thể đặt tên cho Macro hoặc
gán phím tắt và viết miêu tả cho Macro đó. Ở đây, để tiếp tục ta bấm nút
OK.
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
06
họcExcel.Online
select * from [EXCEL]
Trong quá trình ghi code Macro, thao tác của bạn ở cửa sổ bên tay trái sẽ được chức năng Record Macro ghi lại
trong Macro1() bên tay phải
07
họcExcel.Online
select * from [EXCEL]
Mặc định, Macro tạo ra sẽ được ghi trong Module 1 như hình minh hoạ.
Trong quá trình học VBA bằng cách ghi Macro, các bạn nên để cửa sổ Excel
và cửa số soạn thảo VBA song song, khi đó bạn có thể nhìn thấy thao tác
nào trên cửa sổ Excel sẽ được ghi lại bởi Macro ra sao.
Sau khi kết thúc việc ghi Macro, chúng ta cần bấm vào thẻ Developer 1 lần
nữa và bấm nút Stop Recording
08
họcExcel.Online
select * from [EXCEL]
Viết những dòng code đầu tiên
1. Để viết hoặc chỉnh sửa code VBA trong Excel, trình soạn thảo VBA trong
Excel sẽ hỗ trợ việc này. Để mở trình soạn thảo VBA (Visual Basic Editor,
viết tắt VBE), chúng ta sử dụng thẻ Developer, rồi bấm nút Visual Basic như
hình minh hoạ hoặc bấm tổ hợp phím tắt ALT + F11
Cửa sổ soạn thảo VBA trông sẽ như thế này
Đây là cửa sổ Immediate
(Cách mở: Menu View > Immediate Window)
Cửa sổ Immediate Window là nơi chúng ta có thể
thử code VBA hoặc hiển thị nội dung của lệnh
Debug.Print
Cửa sổ Locals, sẽ giúp bạn theo dõi các đối tượng
và biến số trong quá trình chạy code VBA.
Cách mở: Menu View > Locals
Cửa sổ Project thể hiện thông tin liên quan đến các
đối tượng bảng tính, files, form
Cách mở: Menu View > Project Explorer
Cửa sổ Properties thể hiện các thuộc tính của đối
tượng đang được chọn. Chúng ta có thể thay đổi
thuộc tính của các đối tượng trực tiếp trong cửa sổ
này
Cách mở: Menu View > Properties Window
09
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
2. Module sẽ là nơi chứa code VBA, để tạo 1 Module mới, trong VBE, chọn
menu Insert > Module. Tổ hợp phím tắt để tạo 1 Module mới là ALT + I + M
3. Module mới được tạo ra sẽ có tên mặc định là Module1. Tên của Module
này có thể được đổi trong cửa sổ Properties > thuộc tính (Name)
10
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
4. Click đúp vào Module mới tạo ra, chúng ta có thể soạn thảo đoạn code
VBA đầu tiên
5. Để chạy đoạn code này, chúng ta có thể click chuột trái vào bên trong
Sub macroDauTien(), có thể là ngay trước chữ “MsgBox” rồi chọn
menu Run > Run Sub/UserForm
11
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
6. Sau khi chạy đoạn Macro đầu tiên, kết quả là 1 thông báo trong Excel
Đến bước này, nếu bạn nhận được thông báo như vậy, nghĩa là môi trường
lập trình VBA của bạn đã được thiết lập thành công và bạn có thể bắt đầu
thực hiện việc lập trình VBA hoặc tạo ra những Macro của riêng mình. Ở lần
tới, khi bạn mở 1 file Excel có chứa Macro hoặc code VBA, bạn sẽ nhận được
thông báo như sau, bạn chỉ cần bấm nút Enable Content là có thể sử dụng
được Macro đã lưu trong file rồi.
12
họcExcel.Online
select * from [EXCEL]
5. Ứng dụng của VBA / Macros
XLS XLS XLS XLS
1. Tách 1 file Excel ra nhiều files Excel
2. Tách 1 sheet Excel ra nhiều sheets Excel
3. Gửi thư hàng loạt qua Outlook tự động
4. Tạo báo cáo tự động, lấy số liệu, định dạng số liệu
5. Tạo nhiều files Word lấy thông tin từ 1 file Excel
6. Tạo nhiều files PowerPoint lấy thông từ 1 file Excel
7. Tổng hợp dữ liệu từ nhiều files Excel vào 1 file Excel
8. Tổng hợp dữ liệu từ nhiều sheets Excel vào 1 file Excel
9. Xử lý dữ liệu từ nhiều nguồn, nhiều định dạng 1 cách tự động
10. …
và rất nhiều ứng dụng khác các bạn sẽ được giới thiệu trong suốt các khoá
học từ Học Excel Online
1 2 3 4 5
13
họcExcel.Online
select * from [EXCEL]
6. Làm việc với đối tượng Workbook
Workbook hay file Excel, tệp Excel là đối tượng đầu tiên bạn quan tâm tới
và được tiếp xúc khi lập trình VBA, trong chương này, chúng ta sẽ đi làm
việc với đối tượng Workbook và tìm hiểu 1 số thuộc tính cơ bản của đối
tượng này. Trong sách này ở phần phía sau, các bạn sẽ dựa vào kiến thức
chương này để có thể tách gộp được nhiều files Excel phục vụ cho mục đích
của mình. Vậy nên, hãy chú ý vào những thuộc tính mà đối tượng Workbook
hỗ trợ.
Để học các kiến thức này 1 cách trực quan và sinh động hơn, hãy click link
tới khoá học ở phía dưới. Mong hẹn gặp các bạn trong khoá học.
14
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
6. Làm việc với đối tượng Workbook
Để bắt đầu làm việc với đối tượng Workbook trong Excel, bạn có thể thử
những dòng code sau đây trong 1 thủ tục (Sub) được lưu ở trong 1 Module
Truy cập một số thuộc tính cơ bản của Workbook
Ý nghĩa của từng câu lệnh như thế nào thì có lẽ các bạn cũng đã đoán
được:
↳ Câu lệnh này ghi đường dẫn đầy đủ đến Workbook chứa macro vào
vùng A1
Range("A1") = ThisWorkbook.FullName
↳ Câu lệnh này ghi tên của Workbook hoặc file Excel bao gồm cả phần
mở rộng vào vùng A2
Range("A2”) = ThisWorkbook.Name
↳ Câu lệnh này ghi đường dẫn tới thư mục lưu Workbook hoặc file Excel
hiện thời vào vùng A3
Range("A3”) = ThisWorkbook.Path
15
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Một số thao tác cơ bản với Workbook
Mở Workbook
Đóng Workbook
Thủ tục sau đây sẽ mở 1 Workbook biết đường dẫn tới Workbook đó được
lưu trong vùng A1. Hãy thử Sub này trong Module của 1 file Excel bạn mới
tạo ra.
Workbooks.Open Filename:={đường dẫn tới file excel}
↳ Câu lệnh này sẽ mở File Excel được lưu ở trong đường dẫn
Workbooks.Close SaveChanges:=True
↳ Câu lệnh này sẽ đóng 1 Workbook và lưu những thay đổi được thực hiện
trên Workbook đó. Nếu thay True bằng False thì Workbook sẽ được
đóng, thay đổi sẽ không được lưu
16
họcExcel.Online
select * from [EXCEL]
Tạo mới Workbook
Lưu Workbook với 1 tên khác (Save as …)
Để tạo mới 1 Workbook, chúng ta có thể sử dụng câu lệnh VBA sau trong 1
Sub
Để lưu Workbook chứa code VBA dưới 1 tên khác, ta có thể thực hiện đoạn
code sau đây
Workbooks.Add
↳ Câu lệnh này sẽ tạo mới 1 Workbook
ThisWorkbook.SaveAs "C:UsersthanhDesktopa.xlsm"
↳ Câu lệnh này sẽ lưu Workbook có chứa đoạn code VBA trên dưới tên là
a.xlsm tại đường dẫn chỉ định
17
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Đếm số lượng Workbook, in đường dẫn ra cửa sổ Immediate
Trong 1 thời điểm, có thể nhiều file Excel sẽ cùng được mở trên máy tính
của bạn, để đếm được số lượng Workbook hoặc in đường dẫn tới các
Workbook đó chúng ta có thể có 1 số đoạn code như sau
Debug.Print Workbooks.Count
↳ Câu lệnh này sẽ ghi số lượng Workbooks đang mở ra cửa sổ Immediate
Debug.Print Workbooks(2).FullName
↳ Câu lệnh này sẽ ghi tên đầy đủ và đường dẫn tới Workbooks thứ 2
đang được mở
Debug.Print Workbooks(Workbooks.Count).FullName
↳ Câu lệnh này sẽ ghi tên đầy đủ và đường dẫn tới Workbooks cuối cùng
được mở
18
họcExcel.Online
select * from [EXCEL]
7. Làm việc với đối tượng Worksheet
Ngoài Workbook là đối tượng chúng ta đã nhắc đến trong chương trước, đối
tượng Worksheet chỉ những bảng tính trong file Excel của chúng ta là nơi
chúng ta lưu trữ và xử lý phần lớn dữ liệu. Các thao tác với Worksheet cùng
các thuộc tính của đối tượng này sẽ được trình bày trong các trang tiếp
theo của tài liệu
19
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
7. Làm việc với đối tượng Worksheet
Trước khi truy cập vào các thuộc tính của đối tượng Worksheet trong Excel,
bạn cần tham chiếu đến đối tượng này. Để tham chiếu tới Worksheet trong
Excel, bạn có thể sử dụng 1 số cách sau đây
Các cách tham chiếu tới Worksheet trong Excel
↳ Câu lệnh này ghi tên của Worksheet ngoài cùng bên trái ra cửa sổ
Immediate. Đây là cách tham chiếu theo thứ tự
Debug.print Worksheets(1).Name
↳ Câu lệnh này ghi ra cửa sổ Immediate số lượng Sheets trong Workbook
Debug.print Worksheets.Count
↳ Câu lệnh này ghi ra cửa sổ Immediate tên của Sheets ngoài cùng bên
phải trong Workbook - “Bang 7”
Worksheets.Count trả về số lượng Worksheets trong Workbook hiện
thời
Debug.print Worksheets(Worksheets.Count).Name
20
họcExcel.Online
select * from [EXCEL]
Tham chiếu tới Worksheets bằng code name: trong trình soạn thảo VBA,
cửa sổ Project - VBAProject, bạn nhìn thấy Sheet1 (Bang 1). Ở đây, Sheet1
là code name của đối tượng bảng tính này, còn “Bang 1” là tên của bảng
tính đó.
↳ Câu lệnh này ghi tên của bảng tính có code name là Sheet1 ra cửa sổ
Immediate. Đây là cách tham chiếu theo code name.
Debug.print Sheet1.Name
↳ Câu lệnh này ghi tên của bảng tính có tên là “Bang 1” ra cửa sổ
Immediate. Đây là cách tham chiếu theo tên bảng tính
Debug.print Worksheets(“Bang 1”).Name
↳ Thêm 1 worksheet mới
Debug.print Worksheets.Add
↳ Thêm 3 worksheet mới
Debug.print Worksheets.Add Count:=3
↳ Thêm 1 worksheet mới, phía bên trái Worksheet đầu tiên
Debug.print Worksheets.Add Before:=Worksheets(1)
↳ Thêm 1 worksheet mới, phía bên phải Worksheet thứ 3
Debug.print Worksheets.Add After:=Worksheets(3)
↳ Copy bảng tính với code name Sheet1, bản copy được đặt phía sau
Worksheet thứ 3
Sheet1.copy After:=Worksheets(3)
↳ Copy bảng tính với code name Sheet1, bản copy được đặt phía trước
Worksheet thứ 3
Sheet1.copy Before:=Worksheets(3)
Thêm 1 Worksheet
Copy 1 Worksheet
21
họcExcel.Online
select * from [EXCEL]
↳ Câu lệnh này sẽ xoá bảng tính có code name là Sheet1, khi thực hiện
câu lệnh này, Excel sẽ hỏi để xác nhận lại, để bỏ quan xác nhận và thực
hiện thao tác xoá bảng tính, code như sau
↳ Xoá bảng tính với code name Sheet1, bỏ qua hộp thoại xác nhận của
Excel về việc xoá
Sheet1.Delete
↳ Câu lệnh này sẽ đổi tên bảng tính có code name là Sheet1 thành “New
Name”
Sheet1.Name = “New Name”
↳ Câu lệnh này sẽ ẩn bảng tính có code name là Sheet1
Sheet1.Visible = xlSheetHidden
↳ Câu lệnh này sẽ hiện bảng tính có code name là Sheet1
Sheet1.Visible = xlSheetVisible
↳ Câu lệnh này sẽ ẩn bảng tính có code name là Sheet1. Chế độ ẩn này
làm cho bảng tính không thể được bỏ ẩn theo cách bấm chuột phải vào
tên sheet > Unhide … trên giao diện của Excel
Sheet1.Visible = xlSheetVeryHidden
Application.DisplayAlerts = False
Sheet1.Delete
Application.DisplayAlerts = True
Xoá 1 Worksheet
Sửa tên 1 Worksheet
Ẩn / Hiện 1 bảng tính
22
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
8. Làm việc với đối tượng Range
Đối tượng Range sẽ là 1 trong những đối tượng chúng ta sử dụng đến nhiều
nhất trong quá trình lập trình với VBA trong Excel. Đối tượng này tạo nên
bảng tính Excel, nhiều bảng tính (Worksheet) sẽ tạo nên 1 Workbook hay 1
file Excel …
23
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
↳ Câu lệnh này sẽ tham chiếu đến vùng A1 và đặt thuộc tính giá trị của
vùng A1 với nội dung “Hoc Excel Online”
Range(“A1”).value = “Hoc Excel Online”
↳ Câu lệnh này sẽ tham chiếu đến vùng A1:B5 và đặt thuộc tính giá trị
của vùng A1:B5 với nội dung “Hoc Excel Online”
Range(“A1:B5”).value = “Hoc Excel Online”
↳ Câu lệnh trên sẽ điền giá trị “Hoc Excel Online” vào vùng A1:B5 và
C2:D3
Range(“A1:B5,C2:D3”).value = “Hoc Excel Online”
↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate
Debug.print Range(“E8”).Column
↳ Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate
Debug.print Range(“E8”).Row
↳ Khi làm việc với nhiều file Excel cùng 1 lúc, chúng ta cần chỉ ra rõ ràng
địa chỉ vùng chúng ta đang cần làm việc. Trong câu code trên, ý nghĩa
là: đặt giá trị của vùng A1:B5 của bảng tính có code name là Sheet1
trong file Excel chứa câu code trên là “Hoc Excel Online”
ThisWorkbook.Sheet1.Range(“A1:B5”).value = “Hoc Excel Online”
↳ Nếu chúng ta chỉ làm việc với 1 file Excel, thì chúng ta có thể bỏ
ThisWorkbook đi, và thực hiện câu code như trên.
Sheet1.Range(“A1:B5”).value = “Hoc Excel Online”
Tham chiếu đến vùng trong Excel, ghi dữ liệu
Một số thuộc tính và phương thức của Range
Thuộc tính Column, Row
8. Làm việc với đối tượng Range
24
họcExcel.Online
select * from [EXCEL]
↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate
Đối với file xlsx, kết quả của câu lệnh trên là 16384 là số cột mà file
Excel này hỗ trợ
Debug.print Range(“E8”).Column
↳
↳
Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate
↳ Đối với file xlsx, kết quả của câu lệnh trên là 1048576 là số dòng mà file
Excel này hỗ trợ
↳ Bắt đầu từ ô A100, di chuyển ngược lên phía trên đến ô có nội dung và
chọn ô đó
Debug.print Range(“E8”).Row
Debug.print Columns.Count
Debug.print Rows.Count
Range(“A100”).End(xlUp).select
Một số thuộc tính và phương thức của Range
Thuộc tính Column, Row
Chú ý để không nhầm với Rows và Columns
Phương thức End và Select
25
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
↳ Ghi ra cửa sổ Immediate dòng cuối cùng có chứa dữ liệu
Debug.print Range(“A” & Rows.Count).End(xlUp).Row
↳ Ghi ra cửa sổ Immediate địa chỉ tuyệt đối của ô A4 là $A$4
Debug.print Range(“A4”).Address
↳ Điền công thức như hình minh hoạ vào ô A5 bằng code VBA
Range(“A5”).Formula = “=SUM(A1:A4)"
Thuộc tính Address
Thuộc tính Formula
26
họcExcel.Online
select * from [EXCEL]
Sử dụng Range.Offset
Giả sử chúng ta đang lựa chọn ô F8
↳ Di chuyển 2 cột sang phải tính từ cột F. Kết quả là ô H8 được chọn
Range(“F8”).Offset(,2).select
↳ Di chuyển 2 cột sang trái tính từ cột F. Kết quả là ô D8 được chọn
Range(“F8”).Offset(,-2).select
↳ Di chuyển 2 dòng xuống dưới tính từ hàng số 8. Kết quả là ô F10 được
chọn
Range(“F8”).Offset(2).select
↳ Di chuyển 2 dòng lên trên tính từ hàng số 8. Kết quả là ô F6 được chọn
Range(“F8”).Offset(-2).select
↳ Di chuyển 2 dòng xuống dưới và 3 cột sang phải tính từ vị trí ô F8. Kết
quả là ô i10 được chọn
Range(“F8”).Offset(2,3).select
27
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Sử dụng Range.Resize
↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8,
với tham số (1,1) thì vùng chọn này sẽ được giữ nguyên là ô F8
Range(“F8”).Resize(1,1).select
↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8,
mở rộng vùng chọn kể từ F8 - 2 dòng và 3 cột, kết quả là vùng F8:H9
được chọn
Range(“F8”).Resize(2,3).select
28
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Sử dụng Range.Copy
Sử dụng Range.PasteSpecial
↳ Câu lệnh trên sẽ copy vùng dữ liệu bao gồm cả định dạng và dữ liệu từ
vùng A1:B5 đến vùng D1:E5, lưu ý, tuy dữ liệu được copy vào vùng D1:E5
nhưng chúng ta chỉ cần đưa ra nơi cần copy tới là vùng D1
Range(“A1:B5”).Copy Range(“D1”)
↳ 2 câu lệnh trên sẽ copy dữ liệu từ vùng A1:B5, và dán “đặc biệt” bắt đầu
ở vùng A8, các kiểu dán dữ liệu có thể sử dụng là
Range(“A1:B5”).Copy
Range(“A8”).PasteSpecial <paste Type>
Dán tất cả dữ liệu
Dán tất cả trừ định dạng đường viền
Dán và trộn định dạng có điều kiện
Dán và sử dụng Source Theme
Dán chiều rộng của cột
Dán cả ghi chú (comments)
Dán định dạng
Dán công thức
Dán công thức và định dạng số
Dán Data Validation
Dán giá trị (value)
Dán giá trị và định dạng số
29
họcExcel.Online
select * from [EXCEL]
9. Thuộc tính Cells của đối tượng
Worksheet
Range(“A4”).Value = 234
Cells(4,1).Value = 234
Debug.print Cells(Rows.Count, 1).End(xlUp).Row
Debug.print Cells(1, Columns.Count).End(xlToLeft).Column
Cells([chỉ số hàng], [chỉ số cột])
Khác với đối tượng Range có thể tham chiếu đến 1 vùng gồm nhiều ô trong
Excel, thuộc tính Cells của đối tượng Worksheet chỉ có thể tham chiếu đến 1
ô duy nhất trên bảng tính Excel
Cú pháp của việc sử dụng Cells để tham chiếu đến ô trong Excel như sau:
Ví dụ khi chúng ta muốn điền dữ liệu vào ô A4, thì cách sử dụng Range
hoặc Cells sau đây đưa lại kết quả giống nhau
Tuỳ vào nhu cầu xử lý dữ liệu mà mỗi cách tham chiếu đến 1 ô sẽ có những
lợi ích riêng.
Tìm dòng cuối chứa dữ liệu với Cells
Tìm cột cuối chứa dữ liệu với Cells
Để tìm được dòng cuối cùng có chứa dữ liệu trong cột A, chúng ta, có thể sử
dụng công thức sau để ghi dòng cuối cùng có chứa dữ liệu ra cửa sổ
Immediate
Diễn giải: Cells(Rows.Count, 1) cho chúng ta ô cuối cùng trong cột A.
End(xlUp) sẽ tương đương với việc di chuyển lên tới ô có chứa dữ liệu đầu
tiên. ( .Row ) sẽ cho chúng ta biết dòng hiện tại của ô chứa dữ liệu đó
Để tìm được cột cuối cùng có chứa dữ liệu trong dòng thứ nhất, chúng ta có
thể sử dụng công thức sau để ghi dòng cuối cùng có chứa dữ liệu ra cửa sổ
Immediate
30
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
10 .Biến số và kiểu dữ liệu
Các kiểu biến số mà chúng ta quan tâm đến khi sử dụng VBA là kiểu Long,
kiểu Double, kiểu String, kiểu Boolean, kiểu Variant, kiểu Object, và 1 số kiểu
dữ liệu khác. Trong các phần tiếp theo các bạn sẽ được tiếp xúc và giới
thiệu với các kiểu biến số này cũng như cách sử dụng của chúng.
31
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
10. Biến số và kiểu dữ liệu
Các kiểu biến số mà chúng ta quan tâm đến khi sử dụng VBA là kiểu Long,
kiểu Double, kiểu String, kiểu Boolean, kiểu Variant, kiểu Object, và 1 số kiểu
dữ liệu khác. Trong các phần tiếp theo các bạn sẽ được tiếp xúc và giới
thiệu với các kiểu biến số này cũng như cách sử dụng của chúng.
Một ví dụ tiêu biểu cho việc sử dụng biến số trong VBA là: lưu giá trị của
vùng vào biến số, xử lý dữ liệu này trong VBA và ghi lại ra 1 vùng trên Excel.
Việc xử lý dữ liệu như thế này đôi khi sẽ tắc tốc độ cho file Excel của bạn và
giúp bạn làm được những điều mà công thức Excel bình thường không hỗ
trợ.
Để khai báo 1 biến, chúng ta có cú pháp sau đây:
Trong đó:
• Từ khoá Dim: cho VBA biết chúng ta muốn khai báo biến
• Từ khoá As: cho VBA biết chúng ta sẽ khai báo biến với 1 kiểu xác
định
• Từ khoá Long, Boolean, Variant, String, Range … là từ khoá chỉ kiểu dữ
liệu
Cách khai báo biến
32
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Để gán giá trị cho biến, chúng ta đặt tên biến bên tay trái, tiếp theo đó là
dấu bằng, rồi đến giá trị cần gán cho biến. Đối với các biến đối tượng
(Object, Range, Worksheet, Workbook, …), để gán giá trị cho những biến này
thì chúng ta cần thêm từ khoá Set rồi đến tên biến, tiếp theo là đến dấu
bằng, sau đó đến giá trị tham chiếu cho biến đó
Cách gán giá trị cho biến
Biến nào dùng trong trường hợp nào
Một cách đơn giản nhất:
• Các biến Long, Integer dùng để lưu trữ dữ liệu số nguyên
• Các biến Double sẽ lưu trữ dữ liệu dạng số có phần thập phân
• Các biến Boolean sẽ lưu trữ dữ liệu logic, chỉ nhận giá trị TRUE hoặc
FALSE
• Các biến Variant thì sẽ được VBA ép kiểu khi chương trình chạy
• Các biến String sẽ dùng để lưu dữ liệu dạng chuỗi
• Các biến Object để lưu các đối tượng
• Các biến Range sẽ lưu các vùng trên bảng tính
• …
33
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Chúng ta sẽ có 1 ví dụ nhỏ để ứng dụng cho việc dùng biến số trong VBA
như sau: Lưu giá trị của ô A1 và A2 và 2 biến và tính tổng của 2 giá trị này
trong VBA rồi ghi kết quả ra ô A3. Đoạn code để thực hiện việc này có thể
được viết như sau
34
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
11. Cấu trúc IF trong VBA
CODE
CODE
Biểu thức logic
TRUEFALSE
35
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
Cấu trúc IF trong VBA giúp chúng ta giải quyết các vấn đề liên quan đến
điều kiện. Ví dụ bạn muốn nếu ô A1 có giá trị lớn hơn 50 thì bạn ghi sang ô
B1 giá trị là OK. Câu lệnh điều kiện đơn giản này có thể được viết như sau
* Phần điều kiện để kiểm tra này có thể được ghép từ nhiều điều kiện khác
nối với nhau. Ví dụ: Nếu giá trị của ô A1 > 50 và nhỏ hơn 100, khối lệnh IF có
thể được viết như sau
Kết thúc khối lệnh IF
Bắt đầu khối lệnh IF Từ khoá bắt buộc
Điều kiện để kiểm tra *
Câu lệnh sẽ được thực thi
nếu điều kiện IF có giá trị
đúng (TRUE)
Cấu trục IF đơn giản
36
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Tiếp theo, chúng ta đến với ví dụ nếu A1 lớn hơn 50 hoặc B1 nhỏ hơn 200
thì sẽ ghi vào C1 giá trị “OK”
Với những điều kiện phức tạp, chúng ta nên sử dụng các biến số, ví dụ như
sau
Nếu điều kiện của bạn đơn giản và code bên trong khối lệnh IF không phức
tạp, bạn có thể dùng cấu trúc IF 1 dòng như sau (bỏ qua “End If” và viết tất
cả trên cùng 1 dòng)
Cấu trục IF đơn giản
If Range(“A1”) = 100 Then Range(“B1”) = “OK”
37
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Cấu trúc IF THEN ở phần trước khá đơn giản, chúng ta chỉ có thể kiểm tra
được 1 điều kiện, trong phần tiếp theo này, cấu trúc IF … THEN … ELSE … sẽ
giúp chúng ta kiểm tra nhiều điều kiện phức tạp hơn
Nếu điều kiện các bạn cần kiểm tra còn phức tạp hơn nữa, chúng ta có thể
sử dụng đến cấu trúc IF … THEN … ELSEIF … ELSE …
Ví dụ:
• Nếu giá trị A1 là A thì ghi vào B1 giá trị 100
• Nếu giá trị A1 là B thì ghi vào B1 giá trị 50
• Nếu giá trị A1 là C thì ghi vào B1 giá trị 20
• Với các giá trị còn lại thì ghi vào giá trị 10
Ví dụ: Nếu giá trị trong ô A1 > 50 thì chúng ta ghi vào ô B1 là “OK”, nếu giá
trị trong A1 nhỏ hơn hoặc bằng 50 thì chúng ta ghi vào ô B1 là “not OK”.
Đoạn code này có thể được viết như sau
Cấu trúc IF … THEN … ELSE …
Cấu trúc IF … THEN … ELSEIF … ELSE …
38
họcExcel.Online
select * from [EXCEL]
12. Cấu trúc WITH … END WITH
Khi làm việc với cùng 1 đối tượng trong VBA, chúng ta nên dùng cấu trúc
with … end with để code chạy nhanh hơn và ngắn gọn, rõ ràng hơn. Đối
tượng chúng ta nói đến có thể là Range, Worksheet, Workbook, Chart, …
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 30%: https://goo.gl/bxGUEm
39
họcExcel.Online
select * from [EXCEL]
13. Vòng lặp trong VBA
Vòng lặp hay cấu trúc lặp trong ngôn ngữ lập trình sẽ giúp chúng ta thực
hiện 1 loạt thao tác rất nhanh chóng. Đây là 1 trong những nội dung quan
trọng để các bạn có thể hiểu được những đoạn code của người khác viết ra.
Bài này các bạn phải đọc cẩn thận bởi vì vòng lặp không được ghi lại bởi
chức năng Macro Recorder
40
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
13. Vòng lặp trong VBA
Để thực hiện công việc lặp đi lặp lại 1 cách nhanh chóng, chúng ta sẽ dùng
tới vòng lặp trong VBA. Chúng ta sẽ tìm hiểu vòng lặp qua 1 ví dụ sau đây:
In ra cửa sổ Immediate các số từ 1 tới 10
Nếu chưa biết vòng lặp, chúng ta sẽ làm như sau:
Nếu đã biết sử dụng vòng lặp, chúng ta sẽ làm như sau
Trong ví dụ trên:
• For, to, next là từ khoá
• i = 1 to 10 cho VBA biết chúng ta muốn lặp từ giá trị số nguyên 1 đến
giá trị số nguyên 10
Vòng For trên sẽ được thực thi bắt đầu với i = 1. Với i bằng 1 thì
Debug.Print i sẽ cho ra kết quả là 1 trong cửa sổ Immediate. Tương tự như
vậy cho đến hết i = 10.
Sub vong_lap()
Debug.Print 1
Debug.Print 2
Debug.Print 3
Debug.Print 4
Debug.Print 5
Debug.Print 6
Debug.Print 7
Debug.Print 8
Debug.Print 9
Debug.Print 10
End Sub
Sub vong_lap_2()
Dim i as Long
For i = 1 to 10
Debug.Print i
Next i
End Sub
Vòng lặp với chỉ số
File ví dụ:
Github: Vòng lặp trong VBA / vong_lap.xlsm
41
họcExcel.Online
select * from [EXCEL]
Một số ví dụ đơn giản các bạn có thể thực hiện với vòng lặp
Ví dụ 1: Liệt kê tên các sheet trong bảng tính hiện thời và ghi ra cột A ở
sheet1 bắt đầu từ ô A4
Chúng ta còn có thể thực hiện ví dụ này như sau với thuộc tính Cells
Diễn giải:
1. Vòng lặp bắt đầu từ 1 đến số lượng sheets trong Workbook được trả
về bởi lệnh Worksheets.Count
2. Vì chúng ta bắt đầu ghi ra tên các sheets ở ô A4, tiếp đến là A5 rồi
A6, … nên chúng ta cần tìm cách tạo ra dãy số này từ giá trị i, bắt đầu
từ i = 1
3. Để làm được điều này, chúng ta đã viết Range(“A” & (3 + i))
4. Như vậy, với i = 1, chúng ta có thể tham chiếu đến ô A4, và ghi được
tên của sheets với thứ tự = 1. Tiếp tục với i = 2 ta tham chiếu đến ô A5,
và ghi được tên của sheets thứ 2, v.v
42
họcExcel.Online
select * from [EXCEL]
Chúng ta còn có thể sử dụng thuộc tính Offset của đối tượng Range để
thực hiện ví dụ 1
Vòng lặp For … Each
Với 1 số đối tượng trong Excel chúng ta đã biết như Range, Worksheet,
Workbook, chúng ta có thể sử dụng vòng lặp for … each như sau để giải
quyết được vấn đề nêu ra ở ví dụ 1
Diễn giải, vòng lặp for … each ở trong đoạn code trên có thể được hiểu là:
với mỗi bảng tính trong tập hợp các bảng tính thì chúng ta sẽ đi ghi tên các
bảng tính vào cột A, bắt đầu từ ô A4.
Trong các phần tiếp theo, chúng ta sẽ còn gặp lại nhiều ví dụ với các đối
tượng khác cùng với ứng dụng của kiểu vòng lặp For … each này
43
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Vòng lặp với bước nhảy
Đôi khi, chúng ta cần chỉ số vòng lặp tăng lên 2, 3 đơn vị sau 1 vòng lặp chứ
không phải 1 đơn vị như trong ví dụ về vòng lặp đơn giản, hãy xét ví dụ sau
đây: In ra các số lẻ từ 1 đến nhỏ hơn 23
Với vấn đề này, chúng ta sẽ bắt đầu chỉ số lặp từ 1 rồi tiếp theo là 3, 5, 7, … ,
cho đến 23, giữa mỗi vòng lặp chúng ta cần tăng giá trị của chỉ số lặp lên 2
đơn vị, code trông sẽ như sau
Từ khoá Step sẽ thông báo cho VBA biết là chúng ta muốn tăng giá trị của
chỉ số lặp lên 2 đơn vị sau mỗi vòng lặp.
Cũng với vấn đề tương tự như trên, chúng ta có thể in các số ra cửa sổ
Immediate theo chiều ngược lại: in các số lẻ từ 23 đến 1 sử dụng bước nhảy
là -2
44
họcExcel.Online
select * from [EXCEL]
Vòng lặp lồng nhau
Giả sử chúng ta có ma trận 3x5 trong Excel được lưu trong vùng A1:E3,
chúng ta cần điền toạ độ vào mỗi ô trong vùng từ A1:E3, thì chúng ta có thể
sử dụng vòng lặp lồng nhau như sau
45
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Thoát khỏi vòng lặp - Exit for
Vòng lặp vô tận
Vòng lặp có thể rất tốn thời gian và làm chương trình của chúng ta chậm
lại, đôi khi chúng ta muốn thoát khỏi vòng lặp khi 1 điều kiện nào đó thoả
mãn, ví dụ như sau: chúng ta muốn tìm cột đầu tiên trong 5000 cột chứa
giá trị “x” trong hàng số 1:
Trong VBA, vòng lặp vô tân sẽ không được chạy. Ví dụ như sau:
Sub vong_lap_vo_tan()
Dim i as Integer
For i = 1 to 4
i = 1
Next i
End Sub
Trong đoạn code trên, giá trị i sẽ không bao giờ chạy hết đến 4, chúng ta có
1 vòng lặp vô hạn ở đây.
46
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
họcExcel.Online
select * from [EXCEL]
Vòng lặp Do … While … Loop
Ngoài vòng lặp For, chúng ta còn có cấu trúc lặp do … while … loop. Một ví
dụ cho trường hợp sử dụng vòng lặp kiểu này như sau:
Chương trình đoán số may mắn trong các số từ 1 tới 10, bạn được phép
đoán 3 lần, nếu đúng sẽ thông báo chúc mừng, nếu sai sẽ thông báo chúc
bạn may mắn lần sau. Đoạn code này có thể viết như sau
Diễn giải:
1. Ở vòng lặp trên, những code giữa Do … Loop While sẽ chạy ít nhất là 1
lần, nếu người dùng đoán đúng kết quả ngay ở lượt đầu tiên thì
thông báo chúc mừng sẽ được hiện ra
2. Biến count để kiểm soát số lượt đoán cho phép, trong trường hợp
này, người dùng được đoán không quá 3 lần
3. Exit Do sẽ giúp thoát khỏi vòng lặp
4. Vòng lặp sẽ thoát khi người dùng đoán đúng hoặc số lượt đoán lớn
hơn 3
47
họcExcel.Online
select * from [EXCEL]
14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets
Kĩ thuật lọc dữ liệu trong chương này chỉ là 1 trong rất nhiều kĩ thuật để đạt
được mục tiêu lọc dữ liệu ra nhiều sheets. Mình giới thiệu kĩ thuật này ở đây
để các bạn mới bắt đầu với VBA có thể dễ dàng nắm bắt và áp dụng được
rồi từ đó phát triển ra và ứng dụng cho công việc của mình.
48
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người
mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
họcExcel.Online
select * from [EXCEL]
14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets
Đến đây, chúng ta có 1 số lưu ý nếu các bạn định gõ lại Code này vào trình
soạn thảo VBA:
1. Criteria1: ký tự cuối cùng ở từ này là số 1
2. xlPasteValues: ký tự thứ 2 trong từ này là chữ l
File ví dụ:
Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_01.xlsm
49
họcExcel.Online
select * from [EXCEL]
Diễn giải
Trường hợp mở rộng
Tách 1 sheet ra nhiều sheets dựa trên 2 cột dữ liệu
Tách 1 sheet dữ liệu ra nhiều Workbooks Excel / Files Excel
Quy trình lọc dữ liệu từ 1 Sheet ra nhiều sheets có thể được diễn giải như
sau:
1. Sử dụng vòng lặp để lặp qua mỗi ô trong vùng H1:H3 chứa tên các
chi nhánh
2. Với mỗi chi nhánh chúng ta sẽ làm những việc sau đây:
3. Bật bộ lọc cho vùng dữ liệu nguồn A1:B7
4. Thiết lập các tham số cho bộ lọc: lọc theo cột đầu tiên (Field:=1), điều
kiện lọc theo tên chi nhánh (Criteria1:=ten_chi_nhanh.Value)
5. Copy kết quả lọc
6. Tạo ra Sheet mới phía sau Sheet cuối cùng
7. Đổi tên Sheet mới tạo trùng tên với tên chi nhánh đang được xử lý
8. Dán dữ liệu vào Sheet đang được xử lý
Sau khi hoàn thành ví dụ phía trên, chúng ta có thể dễ dàng mở rộng ví dụ
này ra cho trường hợp tách files dựa theo nhiều hơn 1 cột, sau đây là ví dụ
tách 1 sheet ra nhiều sheets dựa trên 2 cột
Một trường hợp hay gặp trong thực tế công việc là nhu cầu tách 1 sheet dữ
liệu ra nhiều Workbooks Excel hay Files Excel. Chỉ với 1 sự thay đổi nhỏ
trong code ta có thể giải quyết được vấn đề này.
File ví dụ:
Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_02.xlsm
File ví dụ:
Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_03.xlsm
50
họcExcel.Online
select * from [EXCEL]
15. Tổng hợp dữ liệu nhiều sheets vào 1
sheet
File ví dụ:
Github: Tổng hợp dữ liệu nhiều sheets vào 1 sheet / tong_hop01.xlsm
Để bắt đầu với ví dụ này, đầu tiên, bạn cần phải download file kèm theo
xuống
Diễn giải
Với mỗi bảng tính trong files Excel, chúng ta sử dụng vòng lặp for each để
lặp qua tên từng bảng tính đó. Nếu tên bảng tính được xử lý khác
“Tong hop” thì chúng ta sẽ gán vùng dữ liệu tuỳ thuộc điều kiện bảng tính
đó có phải là bảng tính đầu tiên cần xử lý hay không. Nếu là bảng tính đầu
tiên cần xử lý, chúng ta sẽ copy cả tiêu đề của bảng tính đó. Nếu không
phải là bảng tính đầu tiên cần xử lý, chúng ta sẽ bỏ qua tiêu đề và chỉ copy
dữ liệu mà thôi.
51
họcExcel.Online
select * from [EXCEL]
16. Làm việc với mảng trong VBA
File ví dụ:
Github: Mảng trong VBA / mang_VBA_01.xlsm
Mảng cũng là 1 kiểu dữ liệu trong VBA và dùng để lưu danh sách những giá
trị thuộc cùng 1 kiểu dữ liệu. Chúng ta có thể tưởng tượng ra mảng như
danh sách tên chi nhánh ngân hàng, dánh sách nhân viên, … Việc đưa dữ
liệu cần xử lý từ trên bảng tính Excel vào mảng để xử lý trong VBA sẽ giúp
tốc độ xử lý nhanh hơn và thao tác xử lý được linh hoạt hơn.
Trong VBA, chúng ta có 2 kiểu mảng: mảng tĩnh và mảng động. Tổng hợp
những thao tác với mảng dữ liệu trong VBA, mời các bạn theo dõi trang
tiếp theo và ở trong file ví dụ hướng dẫn.
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU
Khoá học
http://bit.ly/2eEOWsZ
52
họcExcel.Online
select * from [EXCEL]
Mảng tĩnh
Khai báo
Đặt kích thước
Thay đổi kích thước và giữ
nguyên dữ liệu
Kích thước mảng tĩnh được đặt khi khai
báo
Kích thước mảng tĩnh không thể thay đổi Redim Preserve arr(0 to 6)
Redim arr(0 to 5) as Variant
Dim arr(0 to 5) As Long Dim arr() As Long
Dim arr As Variant
Mảng động
Gán dữ dữ liệu cho phần tử
trong mảng
arr(1) = 234 arr(1) = 234
Lấy dữ liệu từ phần tử trong
mảng
total = arr(1) total = arr(1)
Chỉ số dưới Lbound(arr) Lbound(arr)
Chỉ số trên Ubound(arr) Ubound(arr)
Lặp mảng 1 chiều For i = Lbound(arr) to Ubound(arr)
Next i
For i = Lbound (arr) to Ubound(arr)
Next i
Lặp mảng 2 chiều For i = Lbound(arr,1) to Ubound(arr,1)
For j = Lbound(arr,2) to Ubound(arr,2)
Next j
Next i
For i = Lbound(arr,1) to Ubound(arr,1)
For j = Lbound(arr,2) to Ubound(arr,2)
Next j
Next i
Lặp mảng Variant Dim item as Variant
For Each item in arr
Next item
Dim item as Variant
For Each item in arr
Next item
Function trả về mảng Function GetArray() As Long()
Dim arr(0 To 5) As Long
GetArray = arr
End Function
Function GetArray() As Long()
Dim arr(0 To 5) As Long
GetArray = arr
End Function
Xoá mảng Erase arr Erase arr
Chuỗi => Mảng Không áp dụng cho mảng tĩnh Dim arr as Variant
arr = Split(“Học-Excel-Online”,”-“)
Mảng => Chuỗi Dim sName As String
sName = Join(arr, ":")
Dim sName As String
sName = Join(arr, ":")
Range => Array Không áp dụng cho mảng tĩnh Dim arr As Variant
arr = Range("A1:D2")
Array => Range Dim arr As Variant
Range("A5:D6") = arr
Dim arr As Variant
Range("A5:D6") = arr
Gán giá trị Không áp dụng cho mảng tĩnh Dim arr As Variant
arr = Array(“Học”, “Excel”, “Online”)
53
họcExcel.Online
select * from [EXCEL]
17. Sub và Function trong Excel
Từ đầu sách tới giờ, chúng ta đã làm việc rất nhiều với Sub - hay còn gọi là
thủ tục. Sub giúp chúng ta tự động hoá được các quy trình làm việc. Ngoài
Sub, VBA còn hỗ trợ Function. Function sẽ giúp cho chúng ta phải viết ít
code lặp đi lặp lại hơn, hơn nữa Function còn có thể giúp chúng ta tự tạo ra
những hàm người dùng (UDF - User Defined Function) để sử dụng trực tiếp
được trên bảng tính.
Sub
Đặc điểm
Khởi tạo
Tạo Sub/Function với tham
số
Sub ChayBaoCao()
‘… code VBA
End Sub
Sub ChayBaoCao(TenSheet as String) Function DongCuoi(TenSheet as String)
Function DongCuoi() as Long
‘… code VBA
End Function
1. Có thể chạy từ Button, Event, …
2. Không trả về giá trị
1. Không chạy được từ Button, Event, …
2. Có thể trả về 1 giá trị hoặc đối tượng
3. Có thể sử dụng trên bảng tính
Function
Gọi Sub/Function
Sử dụng Sub/Function
Call ChayBaoCao
‘ hoặc
ChayBaoCao
Call DongCuoi
‘ hoặc
DongCuoi
Call ChayBaoCao(“CN1”)
‘ hoặc
ChayBaoCao “CN1”
Call DongCuoi(“CN1”)
‘ hoặc
DongCuoi “CN1”
Gọi Sub/Function với tham
số
Gán giá trị trả về từ Function
vào biến
- LR = DongCuoi(“CN1”)
Trả về giá trị dạng nguyên
thuỷ
Function GetIndex as Long
GetIndex = 234
End Function
Trả về đối tượng từ Function
(có thêm từ khoá Set)
- Function GetSheet as Worksheet
Set GetSheet = ActiveSheet
End Function
Thoát khỏi Sub / Function
khi điều kiện thoả mãn
If IsError(Range("A1")) Then
Exit Sub
End If
If IsError(Range("A1")) Then
Exit Function
End If
54
họcExcel.Online
select * from [EXCEL]
18 .Hàm người dùng - UDF (User defined
function)
Hàm người dùng trong Excel VBA được viết như Function và có thể trả lại 1
giá trị được người dùng định nghĩa. Vì Function có thể trả lại được giá trị
vậy nên nó có thể được sử dụng trên bảng tính. Ví dụ như sau: trong 1
Module (lưu ý: trong 1 Module), bạn có Function tính diện tích sau đây
Cách dùng: dùng trực tiếp với số hoặc dùng với tham chiếu tới range
Khoá học VBA cơ bản cho người mới bắt đầu
Click link giảm giá 40%: http://bit.ly/2eEOWsZ
55
họcExcel.Online
select * from [EXCEL]
Dành riêng cho khách hàng thân thiết của Học Excel Online: Giảm giá 10%
bất kì khoá học nào trong danh sách sau đây:
Google Trang Tính, Sự
Bổ Sung Tuyệt Vời Cho
Excel
https://goo.gl/bSrKkP https://goo.gl/afnKjfhttps://goo.gl/lYVR5d
https://goo.gl/xLAAgYhttps://goo.gl/KUoxBb
https://goo.gl/MGyJG3https://goo.gl/7QY9Tx
Tổng hợp, phân tích và
báo cáo với Pivot Table
cơ bản trong Excel
https://goo.gl/F1a0YI
Tự tạo phần mềm quản
lý kho với Excel và VBA
Series ứng dụng VBA
Excel vào kế toán - kế
toán kho
Hiểu và phân tích dữ
liệu, ra quyết định với
biểu đồ Excel
Excel từ cơ bản đến
chuyên gia dành cho
người đi làm
Lập trình VBA nâng cao
trong Excel
Thuyết trình chuyên
nghiệp với PowerPoint
Tự động hoá Excel với
lập trình VBA cho người
mới bắt đầu
https://goo.gl/EhFj5E
56
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online
https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://
57

More Related Content

What's hot

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
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...MasterCode.vn
 
Bai giang access 12 tu table report
Bai giang access 12 tu table  reportBai giang access 12 tu table  report
Bai giang access 12 tu table reportHọc Huỳnh Bá
 
Giáo trình access thực hành
Giáo trình access thực hànhGiáo trình access thực hành
Giáo trình access thực hànhhungkk
 
6860590 -phn-mm
6860590 -phn-mm6860590 -phn-mm
6860590 -phn-mmKaquy Ka
 
đề thi tin học văn phòng B
đề thi tin học văn phòng Bđề thi tin học văn phòng B
đề thi tin học văn phòng BThanhphong95
 
Giao trinh excel_can_ban
Giao trinh excel_can_banGiao trinh excel_can_ban
Giao trinh excel_can_banvodkato45
 
Hướng dẫn sử dụng Excel với những tuyệt chiêu
Hướng dẫn sử dụng Excel với những tuyệt chiêuHướng dẫn sử dụng Excel với những tuyệt chiêu
Hướng dẫn sử dụng Excel với những tuyệt chiêuĐoàn Trọng Hiếu
 
TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013Trinh Hung
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Học Huỳnh Bá
 
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...MasterCode.vn
 
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTBài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTMasterCode.vn
 
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTBài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTMasterCode.vn
 

What's hot (18)

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]
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
 
Access toan tap
Access toan tapAccess toan tap
Access toan tap
 
Bai giang access 12 tu table report
Bai giang access 12 tu table  reportBai giang access 12 tu table  report
Bai giang access 12 tu table report
 
Giáo trình access thực hành
Giáo trình access thực hànhGiáo trình access thực hành
Giáo trình access thực hành
 
6860590 -phn-mm
6860590 -phn-mm6860590 -phn-mm
6860590 -phn-mm
 
GIÁO TRÌNH ACCESS 2003
GIÁO TRÌNH ACCESS 2003GIÁO TRÌNH ACCESS 2003
GIÁO TRÌNH ACCESS 2003
 
đề thi tin học văn phòng B
đề thi tin học văn phòng Bđề thi tin học văn phòng B
đề thi tin học văn phòng B
 
Giao trinh excel_can_ban
Giao trinh excel_can_banGiao trinh excel_can_ban
Giao trinh excel_can_ban
 
Một vài mẹo nhỏ trong excel
Một vài mẹo nhỏ trong excelMột vài mẹo nhỏ trong excel
Một vài mẹo nhỏ trong excel
 
Hướng dẫn sử dụng Excel với những tuyệt chiêu
Hướng dẫn sử dụng Excel với những tuyệt chiêuHướng dẫn sử dụng Excel với những tuyệt chiêu
Hướng dẫn sử dụng Excel với những tuyệt chiêu
 
TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003
 
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
 
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTBài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
 
Access Toan Tap
Access Toan TapAccess Toan Tap
Access Toan Tap
 
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTBài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
 
Excel 2010 final
Excel 2010 finalExcel 2010 final
Excel 2010 final
 

Similar to Hocexecl doc 636

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 data4uXephang Daihoc
 
Giao trinh vba gxd
Giao trinh vba gxdGiao trinh vba gxd
Giao trinh vba gxdMinh Bui
 
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01changhangxom dethuong
 
Xay dung macro_visual_basic
Xay dung macro_visual_basicXay dung macro_visual_basic
Xay dung macro_visual_basicVu Van Menh
 
Excel 2010 final
Excel 2010 finalExcel 2010 final
Excel 2010 finaltankhoa1989
 
lap trinh vba excel tu co ban den nang cao
lap trinh vba excel tu co ban den nang caolap trinh vba excel tu co ban den nang cao
lap trinh vba excel tu co ban den nang caoTrần Đình Ngọc
 
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 2010xeroxk
 
Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Học Huỳnh Bá
 
Visualbasic6lythuyet 121025092821-phpapp01
Visualbasic6lythuyet 121025092821-phpapp01Visualbasic6lythuyet 121025092821-phpapp01
Visualbasic6lythuyet 121025092821-phpapp01hatrungkhien
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5Phong Lữ
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicnataliej4
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về VbSun Down
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csauGiang Nguyễn
 
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo bài rút gọn
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo   bài rút gọn1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo   bài rút gọn
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo bài rút gọnMun Mum Mim
 
Lập trình trong_autocad
Lập trình trong_autocadLập trình trong_autocad
Lập trình trong_autocadDuy Tân
 

Similar to Hocexecl doc 636 (20)

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
 
Giao trinh vba
Giao trinh vbaGiao trinh vba
Giao trinh vba
 
Giao trinh vba gxd
Giao trinh vba gxdGiao trinh vba gxd
Giao trinh vba gxd
 
Giao trinh vba
Giao trinh vbaGiao trinh vba
Giao trinh vba
 
Giao trinh vba gxd
Giao trinh vba gxdGiao trinh vba gxd
Giao trinh vba gxd
 
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01
Giaotrinhlaptrinhvisualbasicchoexcel 130802043314-phpapp01
 
Xay dung macro_visual_basic
Xay dung macro_visual_basicXay dung macro_visual_basic
Xay dung macro_visual_basic
 
Excel 2010 final
Excel 2010 finalExcel 2010 final
Excel 2010 final
 
lap trinh vba excel tu co ban den nang cao
lap trinh vba excel tu co ban den nang caolap trinh vba excel tu co ban den nang cao
lap trinh vba excel tu co ban den nang cao
 
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
 
Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0Lập trình với microsoft visual basic 6.0
Lập trình với microsoft visual basic 6.0
 
Visualbasic6lythuyet 121025092821-phpapp01
Visualbasic6lythuyet 121025092821-phpapp01Visualbasic6lythuyet 121025092821-phpapp01
Visualbasic6lythuyet 121025092821-phpapp01
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basic
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về Vb
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
 
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo bài rút gọn
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo   bài rút gọn1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo   bài rút gọn
1 chương trình đào tạo của hướng nghề thiết kế đồ họa quảng cáo bài rút gọn
 
Lap+trinh+vba
Lap+trinh+vbaLap+trinh+vba
Lap+trinh+vba
 
Lập trình trong_autocad
Lập trình trong_autocadLập trình trong_autocad
Lập trình trong_autocad
 
Lap+trinh+vba
Lap+trinh+vbaLap+trinh+vba
Lap+trinh+vba
 

Recently uploaded

chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Hocexecl doc 636

  • 1. Bắt đầu với VBA cơ bản họcExcel.Online select * from [EXCEL] Hello VBA
  • 2. họcExcel.Online select * from [EXCEL] Cảm ơn các bạn đã quyết định chọn cuốn sách này. Có thể vì tò mò, có thể vì muốn thử học 1 kiến thức mới, dù bạn đang ở trong trạng thái nào thì cuốn sách này sẽ mang lại cho các bạn một sự bắt đầu nhẹ nhàng nhất với ngôn ngữ lập trình VBA được sử dụng rộng rãi trong các phần mềm tin học văn phòng, đặc biệt là Excel. Qua cuốn sách này, bạn có thể hiểu được cơ bản VBA là gì, thậm chí còn có thể bắt đầu áp dụng những kiến thức trong sách để phần nào nâng cao năng suất làm việc của mình. Nếu bạn muốn tiếp tục tìm hiểu sâu hơn, áp dụng được nhiều hơn, tiết kiệm nhiều thời gian hơn, học 1 chương trình đã được các tổ chức như VPBank, VietinBank, KPMG tin tưởng và sử dụng. Hãy đăng ký khoá học VBA101 - Lập trình VBA cơ bản cho người mới bắt đầu của Thanh tại địa chỉ: http://bit.ly/2eEOWsZ P.S: Sau khi đọc xong, mong các bạn để lại feedback, reviews, nhận xét để nội dung có thể hoàn thiện tốt hơn. Sách chỉ được xuất bản duy nhất tại địa chỉ trang web: https://hocexcel.online Các file, các đoạn code ví dụ trong sách này có thể được tìm thấy ở đường link sau đây https://github.com/ndthanh/vbabook Về Thanh: https://www.linkedin.com/in/ducthanhnguyen/ Trang chủ: https://blog.hocexcel.online
  • 3. họcExcel.Online select * from [EXCEL] Nguyễn Đức Thanh: - Trình bày - Thiết kế bìa - Viết nội dung - Thiết kế trang - Xuất bản Cập nhật nội dung: 23/07/2017
  • 4. họcExcel.Online select * from [EXCEL] 1. Excel Macros là gì? 01 2. VBA là gì? 01 3. Làm thế nào để bắt đầu? 01 4. Sử dụng chức năng Macro Recorder 05 5. Ứng dụng của VBA / Macros 13 6. Làm việc với đối tượng Workbook 14 7. Làm việc với đối tượng Worksheet 19 8. Làm việc với đối tượng Range 23 9. Thuộc tính Cells của đối tượng Worksheet 30 10. Biến số và kiểu dữ liệu 31 11. Cấu trúc IF trong VBA 35 12. Cấu trúc WITH … END WITH 39 13. Vòng lặp trong VBA 40 14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets 48 15. Tổng hợp dữ liệu nhiều sheets vào 1 sheet 51 16. Làm việc với mảng trong VBA 52 17. Sub và Function trong Excel 54 18.Hàm người dùng - UDF (User defined function) 55
  • 5. họcExcel.Online select * from [EXCEL] 1. Excel Macros là gì? 2. VBA là gì? 3. Làm thế nào để bắt đầu? Excel Macros là những chương trình nhỏ giúp lặp đi lặp lại những thao tác từ đơn giản đến phức tạp một cách tự động trong Excel. Ngoài Excel Macros, chúng ta còn có thể gặp Word Macro, PowerPoint Macro, Outlook Macro … VBA viết tắt của Visual Basic for Applications, là một ngôn ngữ lập trình đi kèm với một số phần mềm của Microsoft, trong đó có Excel, Word, PowerPoint, Outlook, … Để bắt đầu với Excel Macros nói riêng hay Macros nói chung và ngôn ngữ lập trình VBA, chúng ta sẽ đi mở trình soạn thảo VBA. Để mở trình soạn thảo VBA, các bạn hãy theo từng bước sau đây 1. Trong Excel, bấm chuột phải vào Ribbon và chọn mục Customize the Ribbon … 01
  • 6. họcExcel.Online select * from [EXCEL] 2. Trong cửa sổ Excel Options, chọn mục Customize Ribbon bên tay trái. Trong Main Tabs, tích vào lựa chọn Developer rồi nhấn OK 3. Kết quả của bước số 2, thẻ Developer đã được hiển thị trên Ribbon của Excel 02
  • 7. họcExcel.Online select * from [EXCEL] 4. Để chạy được file Excel có chứa Macros hoặc code VBA, tuỳ chỉnh về Macro Security cần được thiết lập như sau. Trong thẻ Developer, bấm nút Macro Security Trong cửa sổ Trust Center, thiết lập các lựa chọn như hình vẽ 03
  • 8. họcExcel.Online select * from [EXCEL] 5. Đến bước này, file Excel đang làm việc cần được lưu dưới dạng có hỗ trợ Macros hoặc code VBA với phần mở rộng là XLSM. Để thực hiện việc này, trong Excel, chọn thẻ File > Save as … hoặc sử dụng phím tắt F12 trên bàn phím Đến bước này, file Excel đã sẵn sàng cho việc sử dụng với Macros hoặc VBA. 04
  • 9. họcExcel.Online select * from [EXCEL] 4. Sử dụng chức năng Macro Recorder Chức năng Macro Recorder sẽ giúp chúng ta rất nhiều trong việc học VBA. Để ghi 1 macro đầu tiên: chọn thẻ Developer > bấm nút Record Macro SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc 05
  • 10. họcExcel.Online select * from [EXCEL] 4. Sử dụng chức năng Macro Recorder Chức năng Macro Recorder sẽ giúp chúng ta rất nhiều trong việc học VBA. Để ghi 1 macro đầu tiên: chọn thẻ Developer > bấm nút Record Macro Trong hộp thoại Record Macro, chúng ta có thể đặt tên cho Macro hoặc gán phím tắt và viết miêu tả cho Macro đó. Ở đây, để tiếp tục ta bấm nút OK. Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ 06
  • 11. họcExcel.Online select * from [EXCEL] Trong quá trình ghi code Macro, thao tác của bạn ở cửa sổ bên tay trái sẽ được chức năng Record Macro ghi lại trong Macro1() bên tay phải 07
  • 12. họcExcel.Online select * from [EXCEL] Mặc định, Macro tạo ra sẽ được ghi trong Module 1 như hình minh hoạ. Trong quá trình học VBA bằng cách ghi Macro, các bạn nên để cửa sổ Excel và cửa số soạn thảo VBA song song, khi đó bạn có thể nhìn thấy thao tác nào trên cửa sổ Excel sẽ được ghi lại bởi Macro ra sao. Sau khi kết thúc việc ghi Macro, chúng ta cần bấm vào thẻ Developer 1 lần nữa và bấm nút Stop Recording 08
  • 13. họcExcel.Online select * from [EXCEL] Viết những dòng code đầu tiên 1. Để viết hoặc chỉnh sửa code VBA trong Excel, trình soạn thảo VBA trong Excel sẽ hỗ trợ việc này. Để mở trình soạn thảo VBA (Visual Basic Editor, viết tắt VBE), chúng ta sử dụng thẻ Developer, rồi bấm nút Visual Basic như hình minh hoạ hoặc bấm tổ hợp phím tắt ALT + F11 Cửa sổ soạn thảo VBA trông sẽ như thế này Đây là cửa sổ Immediate (Cách mở: Menu View > Immediate Window) Cửa sổ Immediate Window là nơi chúng ta có thể thử code VBA hoặc hiển thị nội dung của lệnh Debug.Print Cửa sổ Locals, sẽ giúp bạn theo dõi các đối tượng và biến số trong quá trình chạy code VBA. Cách mở: Menu View > Locals Cửa sổ Project thể hiện thông tin liên quan đến các đối tượng bảng tính, files, form Cách mở: Menu View > Project Explorer Cửa sổ Properties thể hiện các thuộc tính của đối tượng đang được chọn. Chúng ta có thể thay đổi thuộc tính của các đối tượng trực tiếp trong cửa sổ này Cách mở: Menu View > Properties Window 09 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 14. họcExcel.Online select * from [EXCEL] 2. Module sẽ là nơi chứa code VBA, để tạo 1 Module mới, trong VBE, chọn menu Insert > Module. Tổ hợp phím tắt để tạo 1 Module mới là ALT + I + M 3. Module mới được tạo ra sẽ có tên mặc định là Module1. Tên của Module này có thể được đổi trong cửa sổ Properties > thuộc tính (Name) 10 GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ
  • 15. họcExcel.Online select * from [EXCEL] 4. Click đúp vào Module mới tạo ra, chúng ta có thể soạn thảo đoạn code VBA đầu tiên 5. Để chạy đoạn code này, chúng ta có thể click chuột trái vào bên trong Sub macroDauTien(), có thể là ngay trước chữ “MsgBox” rồi chọn menu Run > Run Sub/UserForm 11 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 16. họcExcel.Online select * from [EXCEL] 6. Sau khi chạy đoạn Macro đầu tiên, kết quả là 1 thông báo trong Excel Đến bước này, nếu bạn nhận được thông báo như vậy, nghĩa là môi trường lập trình VBA của bạn đã được thiết lập thành công và bạn có thể bắt đầu thực hiện việc lập trình VBA hoặc tạo ra những Macro của riêng mình. Ở lần tới, khi bạn mở 1 file Excel có chứa Macro hoặc code VBA, bạn sẽ nhận được thông báo như sau, bạn chỉ cần bấm nút Enable Content là có thể sử dụng được Macro đã lưu trong file rồi. 12
  • 17. họcExcel.Online select * from [EXCEL] 5. Ứng dụng của VBA / Macros XLS XLS XLS XLS 1. Tách 1 file Excel ra nhiều files Excel 2. Tách 1 sheet Excel ra nhiều sheets Excel 3. Gửi thư hàng loạt qua Outlook tự động 4. Tạo báo cáo tự động, lấy số liệu, định dạng số liệu 5. Tạo nhiều files Word lấy thông tin từ 1 file Excel 6. Tạo nhiều files PowerPoint lấy thông từ 1 file Excel 7. Tổng hợp dữ liệu từ nhiều files Excel vào 1 file Excel 8. Tổng hợp dữ liệu từ nhiều sheets Excel vào 1 file Excel 9. Xử lý dữ liệu từ nhiều nguồn, nhiều định dạng 1 cách tự động 10. … và rất nhiều ứng dụng khác các bạn sẽ được giới thiệu trong suốt các khoá học từ Học Excel Online 1 2 3 4 5 13
  • 18. họcExcel.Online select * from [EXCEL] 6. Làm việc với đối tượng Workbook Workbook hay file Excel, tệp Excel là đối tượng đầu tiên bạn quan tâm tới và được tiếp xúc khi lập trình VBA, trong chương này, chúng ta sẽ đi làm việc với đối tượng Workbook và tìm hiểu 1 số thuộc tính cơ bản của đối tượng này. Trong sách này ở phần phía sau, các bạn sẽ dựa vào kiến thức chương này để có thể tách gộp được nhiều files Excel phục vụ cho mục đích của mình. Vậy nên, hãy chú ý vào những thuộc tính mà đối tượng Workbook hỗ trợ. Để học các kiến thức này 1 cách trực quan và sinh động hơn, hãy click link tới khoá học ở phía dưới. Mong hẹn gặp các bạn trong khoá học. 14 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 19. họcExcel.Online select * from [EXCEL] 6. Làm việc với đối tượng Workbook Để bắt đầu làm việc với đối tượng Workbook trong Excel, bạn có thể thử những dòng code sau đây trong 1 thủ tục (Sub) được lưu ở trong 1 Module Truy cập một số thuộc tính cơ bản của Workbook Ý nghĩa của từng câu lệnh như thế nào thì có lẽ các bạn cũng đã đoán được: ↳ Câu lệnh này ghi đường dẫn đầy đủ đến Workbook chứa macro vào vùng A1 Range("A1") = ThisWorkbook.FullName ↳ Câu lệnh này ghi tên của Workbook hoặc file Excel bao gồm cả phần mở rộng vào vùng A2 Range("A2”) = ThisWorkbook.Name ↳ Câu lệnh này ghi đường dẫn tới thư mục lưu Workbook hoặc file Excel hiện thời vào vùng A3 Range("A3”) = ThisWorkbook.Path 15 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 20. họcExcel.Online select * from [EXCEL] Một số thao tác cơ bản với Workbook Mở Workbook Đóng Workbook Thủ tục sau đây sẽ mở 1 Workbook biết đường dẫn tới Workbook đó được lưu trong vùng A1. Hãy thử Sub này trong Module của 1 file Excel bạn mới tạo ra. Workbooks.Open Filename:={đường dẫn tới file excel} ↳ Câu lệnh này sẽ mở File Excel được lưu ở trong đường dẫn Workbooks.Close SaveChanges:=True ↳ Câu lệnh này sẽ đóng 1 Workbook và lưu những thay đổi được thực hiện trên Workbook đó. Nếu thay True bằng False thì Workbook sẽ được đóng, thay đổi sẽ không được lưu 16
  • 21. họcExcel.Online select * from [EXCEL] Tạo mới Workbook Lưu Workbook với 1 tên khác (Save as …) Để tạo mới 1 Workbook, chúng ta có thể sử dụng câu lệnh VBA sau trong 1 Sub Để lưu Workbook chứa code VBA dưới 1 tên khác, ta có thể thực hiện đoạn code sau đây Workbooks.Add ↳ Câu lệnh này sẽ tạo mới 1 Workbook ThisWorkbook.SaveAs "C:UsersthanhDesktopa.xlsm" ↳ Câu lệnh này sẽ lưu Workbook có chứa đoạn code VBA trên dưới tên là a.xlsm tại đường dẫn chỉ định 17 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 22. họcExcel.Online select * from [EXCEL] Đếm số lượng Workbook, in đường dẫn ra cửa sổ Immediate Trong 1 thời điểm, có thể nhiều file Excel sẽ cùng được mở trên máy tính của bạn, để đếm được số lượng Workbook hoặc in đường dẫn tới các Workbook đó chúng ta có thể có 1 số đoạn code như sau Debug.Print Workbooks.Count ↳ Câu lệnh này sẽ ghi số lượng Workbooks đang mở ra cửa sổ Immediate Debug.Print Workbooks(2).FullName ↳ Câu lệnh này sẽ ghi tên đầy đủ và đường dẫn tới Workbooks thứ 2 đang được mở Debug.Print Workbooks(Workbooks.Count).FullName ↳ Câu lệnh này sẽ ghi tên đầy đủ và đường dẫn tới Workbooks cuối cùng được mở 18
  • 23. họcExcel.Online select * from [EXCEL] 7. Làm việc với đối tượng Worksheet Ngoài Workbook là đối tượng chúng ta đã nhắc đến trong chương trước, đối tượng Worksheet chỉ những bảng tính trong file Excel của chúng ta là nơi chúng ta lưu trữ và xử lý phần lớn dữ liệu. Các thao tác với Worksheet cùng các thuộc tính của đối tượng này sẽ được trình bày trong các trang tiếp theo của tài liệu 19 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 24. họcExcel.Online select * from [EXCEL] 7. Làm việc với đối tượng Worksheet Trước khi truy cập vào các thuộc tính của đối tượng Worksheet trong Excel, bạn cần tham chiếu đến đối tượng này. Để tham chiếu tới Worksheet trong Excel, bạn có thể sử dụng 1 số cách sau đây Các cách tham chiếu tới Worksheet trong Excel ↳ Câu lệnh này ghi tên của Worksheet ngoài cùng bên trái ra cửa sổ Immediate. Đây là cách tham chiếu theo thứ tự Debug.print Worksheets(1).Name ↳ Câu lệnh này ghi ra cửa sổ Immediate số lượng Sheets trong Workbook Debug.print Worksheets.Count ↳ Câu lệnh này ghi ra cửa sổ Immediate tên của Sheets ngoài cùng bên phải trong Workbook - “Bang 7” Worksheets.Count trả về số lượng Worksheets trong Workbook hiện thời Debug.print Worksheets(Worksheets.Count).Name 20
  • 25. họcExcel.Online select * from [EXCEL] Tham chiếu tới Worksheets bằng code name: trong trình soạn thảo VBA, cửa sổ Project - VBAProject, bạn nhìn thấy Sheet1 (Bang 1). Ở đây, Sheet1 là code name của đối tượng bảng tính này, còn “Bang 1” là tên của bảng tính đó. ↳ Câu lệnh này ghi tên của bảng tính có code name là Sheet1 ra cửa sổ Immediate. Đây là cách tham chiếu theo code name. Debug.print Sheet1.Name ↳ Câu lệnh này ghi tên của bảng tính có tên là “Bang 1” ra cửa sổ Immediate. Đây là cách tham chiếu theo tên bảng tính Debug.print Worksheets(“Bang 1”).Name ↳ Thêm 1 worksheet mới Debug.print Worksheets.Add ↳ Thêm 3 worksheet mới Debug.print Worksheets.Add Count:=3 ↳ Thêm 1 worksheet mới, phía bên trái Worksheet đầu tiên Debug.print Worksheets.Add Before:=Worksheets(1) ↳ Thêm 1 worksheet mới, phía bên phải Worksheet thứ 3 Debug.print Worksheets.Add After:=Worksheets(3) ↳ Copy bảng tính với code name Sheet1, bản copy được đặt phía sau Worksheet thứ 3 Sheet1.copy After:=Worksheets(3) ↳ Copy bảng tính với code name Sheet1, bản copy được đặt phía trước Worksheet thứ 3 Sheet1.copy Before:=Worksheets(3) Thêm 1 Worksheet Copy 1 Worksheet 21
  • 26. họcExcel.Online select * from [EXCEL] ↳ Câu lệnh này sẽ xoá bảng tính có code name là Sheet1, khi thực hiện câu lệnh này, Excel sẽ hỏi để xác nhận lại, để bỏ quan xác nhận và thực hiện thao tác xoá bảng tính, code như sau ↳ Xoá bảng tính với code name Sheet1, bỏ qua hộp thoại xác nhận của Excel về việc xoá Sheet1.Delete ↳ Câu lệnh này sẽ đổi tên bảng tính có code name là Sheet1 thành “New Name” Sheet1.Name = “New Name” ↳ Câu lệnh này sẽ ẩn bảng tính có code name là Sheet1 Sheet1.Visible = xlSheetHidden ↳ Câu lệnh này sẽ hiện bảng tính có code name là Sheet1 Sheet1.Visible = xlSheetVisible ↳ Câu lệnh này sẽ ẩn bảng tính có code name là Sheet1. Chế độ ẩn này làm cho bảng tính không thể được bỏ ẩn theo cách bấm chuột phải vào tên sheet > Unhide … trên giao diện của Excel Sheet1.Visible = xlSheetVeryHidden Application.DisplayAlerts = False Sheet1.Delete Application.DisplayAlerts = True Xoá 1 Worksheet Sửa tên 1 Worksheet Ẩn / Hiện 1 bảng tính 22 GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ
  • 27. họcExcel.Online select * from [EXCEL] 8. Làm việc với đối tượng Range Đối tượng Range sẽ là 1 trong những đối tượng chúng ta sử dụng đến nhiều nhất trong quá trình lập trình với VBA trong Excel. Đối tượng này tạo nên bảng tính Excel, nhiều bảng tính (Worksheet) sẽ tạo nên 1 Workbook hay 1 file Excel … 23 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 28. họcExcel.Online select * from [EXCEL] ↳ Câu lệnh này sẽ tham chiếu đến vùng A1 và đặt thuộc tính giá trị của vùng A1 với nội dung “Hoc Excel Online” Range(“A1”).value = “Hoc Excel Online” ↳ Câu lệnh này sẽ tham chiếu đến vùng A1:B5 và đặt thuộc tính giá trị của vùng A1:B5 với nội dung “Hoc Excel Online” Range(“A1:B5”).value = “Hoc Excel Online” ↳ Câu lệnh trên sẽ điền giá trị “Hoc Excel Online” vào vùng A1:B5 và C2:D3 Range(“A1:B5,C2:D3”).value = “Hoc Excel Online” ↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate Debug.print Range(“E8”).Column ↳ Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate Debug.print Range(“E8”).Row ↳ Khi làm việc với nhiều file Excel cùng 1 lúc, chúng ta cần chỉ ra rõ ràng địa chỉ vùng chúng ta đang cần làm việc. Trong câu code trên, ý nghĩa là: đặt giá trị của vùng A1:B5 của bảng tính có code name là Sheet1 trong file Excel chứa câu code trên là “Hoc Excel Online” ThisWorkbook.Sheet1.Range(“A1:B5”).value = “Hoc Excel Online” ↳ Nếu chúng ta chỉ làm việc với 1 file Excel, thì chúng ta có thể bỏ ThisWorkbook đi, và thực hiện câu code như trên. Sheet1.Range(“A1:B5”).value = “Hoc Excel Online” Tham chiếu đến vùng trong Excel, ghi dữ liệu Một số thuộc tính và phương thức của Range Thuộc tính Column, Row 8. Làm việc với đối tượng Range 24
  • 29. họcExcel.Online select * from [EXCEL] ↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate Đối với file xlsx, kết quả của câu lệnh trên là 16384 là số cột mà file Excel này hỗ trợ Debug.print Range(“E8”).Column ↳ ↳ Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate ↳ Đối với file xlsx, kết quả của câu lệnh trên là 1048576 là số dòng mà file Excel này hỗ trợ ↳ Bắt đầu từ ô A100, di chuyển ngược lên phía trên đến ô có nội dung và chọn ô đó Debug.print Range(“E8”).Row Debug.print Columns.Count Debug.print Rows.Count Range(“A100”).End(xlUp).select Một số thuộc tính và phương thức của Range Thuộc tính Column, Row Chú ý để không nhầm với Rows và Columns Phương thức End và Select 25 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 30. họcExcel.Online select * from [EXCEL] ↳ Ghi ra cửa sổ Immediate dòng cuối cùng có chứa dữ liệu Debug.print Range(“A” & Rows.Count).End(xlUp).Row ↳ Ghi ra cửa sổ Immediate địa chỉ tuyệt đối của ô A4 là $A$4 Debug.print Range(“A4”).Address ↳ Điền công thức như hình minh hoạ vào ô A5 bằng code VBA Range(“A5”).Formula = “=SUM(A1:A4)" Thuộc tính Address Thuộc tính Formula 26
  • 31. họcExcel.Online select * from [EXCEL] Sử dụng Range.Offset Giả sử chúng ta đang lựa chọn ô F8 ↳ Di chuyển 2 cột sang phải tính từ cột F. Kết quả là ô H8 được chọn Range(“F8”).Offset(,2).select ↳ Di chuyển 2 cột sang trái tính từ cột F. Kết quả là ô D8 được chọn Range(“F8”).Offset(,-2).select ↳ Di chuyển 2 dòng xuống dưới tính từ hàng số 8. Kết quả là ô F10 được chọn Range(“F8”).Offset(2).select ↳ Di chuyển 2 dòng lên trên tính từ hàng số 8. Kết quả là ô F6 được chọn Range(“F8”).Offset(-2).select ↳ Di chuyển 2 dòng xuống dưới và 3 cột sang phải tính từ vị trí ô F8. Kết quả là ô i10 được chọn Range(“F8”).Offset(2,3).select 27 GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ
  • 32. họcExcel.Online select * from [EXCEL] Sử dụng Range.Resize ↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8, với tham số (1,1) thì vùng chọn này sẽ được giữ nguyên là ô F8 Range(“F8”).Resize(1,1).select ↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8, mở rộng vùng chọn kể từ F8 - 2 dòng và 3 cột, kết quả là vùng F8:H9 được chọn Range(“F8”).Resize(2,3).select 28 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 33. họcExcel.Online select * from [EXCEL] Sử dụng Range.Copy Sử dụng Range.PasteSpecial ↳ Câu lệnh trên sẽ copy vùng dữ liệu bao gồm cả định dạng và dữ liệu từ vùng A1:B5 đến vùng D1:E5, lưu ý, tuy dữ liệu được copy vào vùng D1:E5 nhưng chúng ta chỉ cần đưa ra nơi cần copy tới là vùng D1 Range(“A1:B5”).Copy Range(“D1”) ↳ 2 câu lệnh trên sẽ copy dữ liệu từ vùng A1:B5, và dán “đặc biệt” bắt đầu ở vùng A8, các kiểu dán dữ liệu có thể sử dụng là Range(“A1:B5”).Copy Range(“A8”).PasteSpecial <paste Type> Dán tất cả dữ liệu Dán tất cả trừ định dạng đường viền Dán và trộn định dạng có điều kiện Dán và sử dụng Source Theme Dán chiều rộng của cột Dán cả ghi chú (comments) Dán định dạng Dán công thức Dán công thức và định dạng số Dán Data Validation Dán giá trị (value) Dán giá trị và định dạng số 29
  • 34. họcExcel.Online select * from [EXCEL] 9. Thuộc tính Cells của đối tượng Worksheet Range(“A4”).Value = 234 Cells(4,1).Value = 234 Debug.print Cells(Rows.Count, 1).End(xlUp).Row Debug.print Cells(1, Columns.Count).End(xlToLeft).Column Cells([chỉ số hàng], [chỉ số cột]) Khác với đối tượng Range có thể tham chiếu đến 1 vùng gồm nhiều ô trong Excel, thuộc tính Cells của đối tượng Worksheet chỉ có thể tham chiếu đến 1 ô duy nhất trên bảng tính Excel Cú pháp của việc sử dụng Cells để tham chiếu đến ô trong Excel như sau: Ví dụ khi chúng ta muốn điền dữ liệu vào ô A4, thì cách sử dụng Range hoặc Cells sau đây đưa lại kết quả giống nhau Tuỳ vào nhu cầu xử lý dữ liệu mà mỗi cách tham chiếu đến 1 ô sẽ có những lợi ích riêng. Tìm dòng cuối chứa dữ liệu với Cells Tìm cột cuối chứa dữ liệu với Cells Để tìm được dòng cuối cùng có chứa dữ liệu trong cột A, chúng ta, có thể sử dụng công thức sau để ghi dòng cuối cùng có chứa dữ liệu ra cửa sổ Immediate Diễn giải: Cells(Rows.Count, 1) cho chúng ta ô cuối cùng trong cột A. End(xlUp) sẽ tương đương với việc di chuyển lên tới ô có chứa dữ liệu đầu tiên. ( .Row ) sẽ cho chúng ta biết dòng hiện tại của ô chứa dữ liệu đó Để tìm được cột cuối cùng có chứa dữ liệu trong dòng thứ nhất, chúng ta có thể sử dụng công thức sau để ghi dòng cuối cùng có chứa dữ liệu ra cửa sổ Immediate 30 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 35. họcExcel.Online select * from [EXCEL] 10 .Biến số và kiểu dữ liệu Các kiểu biến số mà chúng ta quan tâm đến khi sử dụng VBA là kiểu Long, kiểu Double, kiểu String, kiểu Boolean, kiểu Variant, kiểu Object, và 1 số kiểu dữ liệu khác. Trong các phần tiếp theo các bạn sẽ được tiếp xúc và giới thiệu với các kiểu biến số này cũng như cách sử dụng của chúng. 31 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 36. họcExcel.Online select * from [EXCEL] 10. Biến số và kiểu dữ liệu Các kiểu biến số mà chúng ta quan tâm đến khi sử dụng VBA là kiểu Long, kiểu Double, kiểu String, kiểu Boolean, kiểu Variant, kiểu Object, và 1 số kiểu dữ liệu khác. Trong các phần tiếp theo các bạn sẽ được tiếp xúc và giới thiệu với các kiểu biến số này cũng như cách sử dụng của chúng. Một ví dụ tiêu biểu cho việc sử dụng biến số trong VBA là: lưu giá trị của vùng vào biến số, xử lý dữ liệu này trong VBA và ghi lại ra 1 vùng trên Excel. Việc xử lý dữ liệu như thế này đôi khi sẽ tắc tốc độ cho file Excel của bạn và giúp bạn làm được những điều mà công thức Excel bình thường không hỗ trợ. Để khai báo 1 biến, chúng ta có cú pháp sau đây: Trong đó: • Từ khoá Dim: cho VBA biết chúng ta muốn khai báo biến • Từ khoá As: cho VBA biết chúng ta sẽ khai báo biến với 1 kiểu xác định • Từ khoá Long, Boolean, Variant, String, Range … là từ khoá chỉ kiểu dữ liệu Cách khai báo biến 32 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 37. họcExcel.Online select * from [EXCEL] Để gán giá trị cho biến, chúng ta đặt tên biến bên tay trái, tiếp theo đó là dấu bằng, rồi đến giá trị cần gán cho biến. Đối với các biến đối tượng (Object, Range, Worksheet, Workbook, …), để gán giá trị cho những biến này thì chúng ta cần thêm từ khoá Set rồi đến tên biến, tiếp theo là đến dấu bằng, sau đó đến giá trị tham chiếu cho biến đó Cách gán giá trị cho biến Biến nào dùng trong trường hợp nào Một cách đơn giản nhất: • Các biến Long, Integer dùng để lưu trữ dữ liệu số nguyên • Các biến Double sẽ lưu trữ dữ liệu dạng số có phần thập phân • Các biến Boolean sẽ lưu trữ dữ liệu logic, chỉ nhận giá trị TRUE hoặc FALSE • Các biến Variant thì sẽ được VBA ép kiểu khi chương trình chạy • Các biến String sẽ dùng để lưu dữ liệu dạng chuỗi • Các biến Object để lưu các đối tượng • Các biến Range sẽ lưu các vùng trên bảng tính • … 33 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 38. họcExcel.Online select * from [EXCEL] Chúng ta sẽ có 1 ví dụ nhỏ để ứng dụng cho việc dùng biến số trong VBA như sau: Lưu giá trị của ô A1 và A2 và 2 biến và tính tổng của 2 giá trị này trong VBA rồi ghi kết quả ra ô A3. Đoạn code để thực hiện việc này có thể được viết như sau 34 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 39. họcExcel.Online select * from [EXCEL] 11. Cấu trúc IF trong VBA CODE CODE Biểu thức logic TRUEFALSE 35 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 40. họcExcel.Online select * from [EXCEL] Cấu trúc IF trong VBA giúp chúng ta giải quyết các vấn đề liên quan đến điều kiện. Ví dụ bạn muốn nếu ô A1 có giá trị lớn hơn 50 thì bạn ghi sang ô B1 giá trị là OK. Câu lệnh điều kiện đơn giản này có thể được viết như sau * Phần điều kiện để kiểm tra này có thể được ghép từ nhiều điều kiện khác nối với nhau. Ví dụ: Nếu giá trị của ô A1 > 50 và nhỏ hơn 100, khối lệnh IF có thể được viết như sau Kết thúc khối lệnh IF Bắt đầu khối lệnh IF Từ khoá bắt buộc Điều kiện để kiểm tra * Câu lệnh sẽ được thực thi nếu điều kiện IF có giá trị đúng (TRUE) Cấu trục IF đơn giản 36 GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ
  • 41. họcExcel.Online select * from [EXCEL] Tiếp theo, chúng ta đến với ví dụ nếu A1 lớn hơn 50 hoặc B1 nhỏ hơn 200 thì sẽ ghi vào C1 giá trị “OK” Với những điều kiện phức tạp, chúng ta nên sử dụng các biến số, ví dụ như sau Nếu điều kiện của bạn đơn giản và code bên trong khối lệnh IF không phức tạp, bạn có thể dùng cấu trúc IF 1 dòng như sau (bỏ qua “End If” và viết tất cả trên cùng 1 dòng) Cấu trục IF đơn giản If Range(“A1”) = 100 Then Range(“B1”) = “OK” 37 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 42. họcExcel.Online select * from [EXCEL] Cấu trúc IF THEN ở phần trước khá đơn giản, chúng ta chỉ có thể kiểm tra được 1 điều kiện, trong phần tiếp theo này, cấu trúc IF … THEN … ELSE … sẽ giúp chúng ta kiểm tra nhiều điều kiện phức tạp hơn Nếu điều kiện các bạn cần kiểm tra còn phức tạp hơn nữa, chúng ta có thể sử dụng đến cấu trúc IF … THEN … ELSEIF … ELSE … Ví dụ: • Nếu giá trị A1 là A thì ghi vào B1 giá trị 100 • Nếu giá trị A1 là B thì ghi vào B1 giá trị 50 • Nếu giá trị A1 là C thì ghi vào B1 giá trị 20 • Với các giá trị còn lại thì ghi vào giá trị 10 Ví dụ: Nếu giá trị trong ô A1 > 50 thì chúng ta ghi vào ô B1 là “OK”, nếu giá trị trong A1 nhỏ hơn hoặc bằng 50 thì chúng ta ghi vào ô B1 là “not OK”. Đoạn code này có thể được viết như sau Cấu trúc IF … THEN … ELSE … Cấu trúc IF … THEN … ELSEIF … ELSE … 38
  • 43. họcExcel.Online select * from [EXCEL] 12. Cấu trúc WITH … END WITH Khi làm việc với cùng 1 đối tượng trong VBA, chúng ta nên dùng cấu trúc with … end with để code chạy nhanh hơn và ngắn gọn, rõ ràng hơn. Đối tượng chúng ta nói đến có thể là Range, Worksheet, Workbook, Chart, … Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 30%: https://goo.gl/bxGUEm 39
  • 44. họcExcel.Online select * from [EXCEL] 13. Vòng lặp trong VBA Vòng lặp hay cấu trúc lặp trong ngôn ngữ lập trình sẽ giúp chúng ta thực hiện 1 loạt thao tác rất nhanh chóng. Đây là 1 trong những nội dung quan trọng để các bạn có thể hiểu được những đoạn code của người khác viết ra. Bài này các bạn phải đọc cẩn thận bởi vì vòng lặp không được ghi lại bởi chức năng Macro Recorder 40 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 45. họcExcel.Online select * from [EXCEL] 13. Vòng lặp trong VBA Để thực hiện công việc lặp đi lặp lại 1 cách nhanh chóng, chúng ta sẽ dùng tới vòng lặp trong VBA. Chúng ta sẽ tìm hiểu vòng lặp qua 1 ví dụ sau đây: In ra cửa sổ Immediate các số từ 1 tới 10 Nếu chưa biết vòng lặp, chúng ta sẽ làm như sau: Nếu đã biết sử dụng vòng lặp, chúng ta sẽ làm như sau Trong ví dụ trên: • For, to, next là từ khoá • i = 1 to 10 cho VBA biết chúng ta muốn lặp từ giá trị số nguyên 1 đến giá trị số nguyên 10 Vòng For trên sẽ được thực thi bắt đầu với i = 1. Với i bằng 1 thì Debug.Print i sẽ cho ra kết quả là 1 trong cửa sổ Immediate. Tương tự như vậy cho đến hết i = 10. Sub vong_lap() Debug.Print 1 Debug.Print 2 Debug.Print 3 Debug.Print 4 Debug.Print 5 Debug.Print 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub Sub vong_lap_2() Dim i as Long For i = 1 to 10 Debug.Print i Next i End Sub Vòng lặp với chỉ số File ví dụ: Github: Vòng lặp trong VBA / vong_lap.xlsm 41
  • 46. họcExcel.Online select * from [EXCEL] Một số ví dụ đơn giản các bạn có thể thực hiện với vòng lặp Ví dụ 1: Liệt kê tên các sheet trong bảng tính hiện thời và ghi ra cột A ở sheet1 bắt đầu từ ô A4 Chúng ta còn có thể thực hiện ví dụ này như sau với thuộc tính Cells Diễn giải: 1. Vòng lặp bắt đầu từ 1 đến số lượng sheets trong Workbook được trả về bởi lệnh Worksheets.Count 2. Vì chúng ta bắt đầu ghi ra tên các sheets ở ô A4, tiếp đến là A5 rồi A6, … nên chúng ta cần tìm cách tạo ra dãy số này từ giá trị i, bắt đầu từ i = 1 3. Để làm được điều này, chúng ta đã viết Range(“A” & (3 + i)) 4. Như vậy, với i = 1, chúng ta có thể tham chiếu đến ô A4, và ghi được tên của sheets với thứ tự = 1. Tiếp tục với i = 2 ta tham chiếu đến ô A5, và ghi được tên của sheets thứ 2, v.v 42
  • 47. họcExcel.Online select * from [EXCEL] Chúng ta còn có thể sử dụng thuộc tính Offset của đối tượng Range để thực hiện ví dụ 1 Vòng lặp For … Each Với 1 số đối tượng trong Excel chúng ta đã biết như Range, Worksheet, Workbook, chúng ta có thể sử dụng vòng lặp for … each như sau để giải quyết được vấn đề nêu ra ở ví dụ 1 Diễn giải, vòng lặp for … each ở trong đoạn code trên có thể được hiểu là: với mỗi bảng tính trong tập hợp các bảng tính thì chúng ta sẽ đi ghi tên các bảng tính vào cột A, bắt đầu từ ô A4. Trong các phần tiếp theo, chúng ta sẽ còn gặp lại nhiều ví dụ với các đối tượng khác cùng với ứng dụng của kiểu vòng lặp For … each này 43 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 48. họcExcel.Online select * from [EXCEL] Vòng lặp với bước nhảy Đôi khi, chúng ta cần chỉ số vòng lặp tăng lên 2, 3 đơn vị sau 1 vòng lặp chứ không phải 1 đơn vị như trong ví dụ về vòng lặp đơn giản, hãy xét ví dụ sau đây: In ra các số lẻ từ 1 đến nhỏ hơn 23 Với vấn đề này, chúng ta sẽ bắt đầu chỉ số lặp từ 1 rồi tiếp theo là 3, 5, 7, … , cho đến 23, giữa mỗi vòng lặp chúng ta cần tăng giá trị của chỉ số lặp lên 2 đơn vị, code trông sẽ như sau Từ khoá Step sẽ thông báo cho VBA biết là chúng ta muốn tăng giá trị của chỉ số lặp lên 2 đơn vị sau mỗi vòng lặp. Cũng với vấn đề tương tự như trên, chúng ta có thể in các số ra cửa sổ Immediate theo chiều ngược lại: in các số lẻ từ 23 đến 1 sử dụng bước nhảy là -2 44
  • 49. họcExcel.Online select * from [EXCEL] Vòng lặp lồng nhau Giả sử chúng ta có ma trận 3x5 trong Excel được lưu trong vùng A1:E3, chúng ta cần điền toạ độ vào mỗi ô trong vùng từ A1:E3, thì chúng ta có thể sử dụng vòng lặp lồng nhau như sau 45 GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ
  • 50. họcExcel.Online select * from [EXCEL] Thoát khỏi vòng lặp - Exit for Vòng lặp vô tận Vòng lặp có thể rất tốn thời gian và làm chương trình của chúng ta chậm lại, đôi khi chúng ta muốn thoát khỏi vòng lặp khi 1 điều kiện nào đó thoả mãn, ví dụ như sau: chúng ta muốn tìm cột đầu tiên trong 5000 cột chứa giá trị “x” trong hàng số 1: Trong VBA, vòng lặp vô tân sẽ không được chạy. Ví dụ như sau: Sub vong_lap_vo_tan() Dim i as Integer For i = 1 to 4 i = 1 Next i End Sub Trong đoạn code trên, giá trị i sẽ không bao giờ chạy hết đến 4, chúng ta có 1 vòng lặp vô hạn ở đây. 46 Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
  • 51. họcExcel.Online select * from [EXCEL] Vòng lặp Do … While … Loop Ngoài vòng lặp For, chúng ta còn có cấu trúc lặp do … while … loop. Một ví dụ cho trường hợp sử dụng vòng lặp kiểu này như sau: Chương trình đoán số may mắn trong các số từ 1 tới 10, bạn được phép đoán 3 lần, nếu đúng sẽ thông báo chúc mừng, nếu sai sẽ thông báo chúc bạn may mắn lần sau. Đoạn code này có thể viết như sau Diễn giải: 1. Ở vòng lặp trên, những code giữa Do … Loop While sẽ chạy ít nhất là 1 lần, nếu người dùng đoán đúng kết quả ngay ở lượt đầu tiên thì thông báo chúc mừng sẽ được hiện ra 2. Biến count để kiểm soát số lượt đoán cho phép, trong trường hợp này, người dùng được đoán không quá 3 lần 3. Exit Do sẽ giúp thoát khỏi vòng lặp 4. Vòng lặp sẽ thoát khi người dùng đoán đúng hoặc số lượt đoán lớn hơn 3 47
  • 52. họcExcel.Online select * from [EXCEL] 14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets Kĩ thuật lọc dữ liệu trong chương này chỉ là 1 trong rất nhiều kĩ thuật để đạt được mục tiêu lọc dữ liệu ra nhiều sheets. Mình giới thiệu kĩ thuật này ở đây để các bạn mới bắt đầu với VBA có thể dễ dàng nắm bắt và áp dụng được rồi từ đó phát triển ra và ứng dụng cho công việc của mình. 48 SCAN MÃ ĐỂ NHẬN NGAY COUPON GIẢM GIÁ 40% KHOÁ HỌC VBA101 - VBA cơ bản cho người mới bắt đầu Bấm nút http://bit.ly/2eEOWsZ hoặc
  • 53. họcExcel.Online select * from [EXCEL] 14. Lọc dữ liệu từ 1 Sheet ra nhiều sheets Đến đây, chúng ta có 1 số lưu ý nếu các bạn định gõ lại Code này vào trình soạn thảo VBA: 1. Criteria1: ký tự cuối cùng ở từ này là số 1 2. xlPasteValues: ký tự thứ 2 trong từ này là chữ l File ví dụ: Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_01.xlsm 49
  • 54. họcExcel.Online select * from [EXCEL] Diễn giải Trường hợp mở rộng Tách 1 sheet ra nhiều sheets dựa trên 2 cột dữ liệu Tách 1 sheet dữ liệu ra nhiều Workbooks Excel / Files Excel Quy trình lọc dữ liệu từ 1 Sheet ra nhiều sheets có thể được diễn giải như sau: 1. Sử dụng vòng lặp để lặp qua mỗi ô trong vùng H1:H3 chứa tên các chi nhánh 2. Với mỗi chi nhánh chúng ta sẽ làm những việc sau đây: 3. Bật bộ lọc cho vùng dữ liệu nguồn A1:B7 4. Thiết lập các tham số cho bộ lọc: lọc theo cột đầu tiên (Field:=1), điều kiện lọc theo tên chi nhánh (Criteria1:=ten_chi_nhanh.Value) 5. Copy kết quả lọc 6. Tạo ra Sheet mới phía sau Sheet cuối cùng 7. Đổi tên Sheet mới tạo trùng tên với tên chi nhánh đang được xử lý 8. Dán dữ liệu vào Sheet đang được xử lý Sau khi hoàn thành ví dụ phía trên, chúng ta có thể dễ dàng mở rộng ví dụ này ra cho trường hợp tách files dựa theo nhiều hơn 1 cột, sau đây là ví dụ tách 1 sheet ra nhiều sheets dựa trên 2 cột Một trường hợp hay gặp trong thực tế công việc là nhu cầu tách 1 sheet dữ liệu ra nhiều Workbooks Excel hay Files Excel. Chỉ với 1 sự thay đổi nhỏ trong code ta có thể giải quyết được vấn đề này. File ví dụ: Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_02.xlsm File ví dụ: Github: Lọc dữ liệu từ 1 Sheet ra nhiều Sheets / loc_du_lieu_03.xlsm 50
  • 55. họcExcel.Online select * from [EXCEL] 15. Tổng hợp dữ liệu nhiều sheets vào 1 sheet File ví dụ: Github: Tổng hợp dữ liệu nhiều sheets vào 1 sheet / tong_hop01.xlsm Để bắt đầu với ví dụ này, đầu tiên, bạn cần phải download file kèm theo xuống Diễn giải Với mỗi bảng tính trong files Excel, chúng ta sử dụng vòng lặp for each để lặp qua tên từng bảng tính đó. Nếu tên bảng tính được xử lý khác “Tong hop” thì chúng ta sẽ gán vùng dữ liệu tuỳ thuộc điều kiện bảng tính đó có phải là bảng tính đầu tiên cần xử lý hay không. Nếu là bảng tính đầu tiên cần xử lý, chúng ta sẽ copy cả tiêu đề của bảng tính đó. Nếu không phải là bảng tính đầu tiên cần xử lý, chúng ta sẽ bỏ qua tiêu đề và chỉ copy dữ liệu mà thôi. 51
  • 56. họcExcel.Online select * from [EXCEL] 16. Làm việc với mảng trong VBA File ví dụ: Github: Mảng trong VBA / mang_VBA_01.xlsm Mảng cũng là 1 kiểu dữ liệu trong VBA và dùng để lưu danh sách những giá trị thuộc cùng 1 kiểu dữ liệu. Chúng ta có thể tưởng tượng ra mảng như danh sách tên chi nhánh ngân hàng, dánh sách nhân viên, … Việc đưa dữ liệu cần xử lý từ trên bảng tính Excel vào mảng để xử lý trong VBA sẽ giúp tốc độ xử lý nhanh hơn và thao tác xử lý được linh hoạt hơn. Trong VBA, chúng ta có 2 kiểu mảng: mảng tĩnh và mảng động. Tổng hợp những thao tác với mảng dữ liệu trong VBA, mời các bạn theo dõi trang tiếp theo và ở trong file ví dụ hướng dẫn. GIẢM NGAY 30% VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học http://bit.ly/2eEOWsZ 52
  • 57. họcExcel.Online select * from [EXCEL] Mảng tĩnh Khai báo Đặt kích thước Thay đổi kích thước và giữ nguyên dữ liệu Kích thước mảng tĩnh được đặt khi khai báo Kích thước mảng tĩnh không thể thay đổi Redim Preserve arr(0 to 6) Redim arr(0 to 5) as Variant Dim arr(0 to 5) As Long Dim arr() As Long Dim arr As Variant Mảng động Gán dữ dữ liệu cho phần tử trong mảng arr(1) = 234 arr(1) = 234 Lấy dữ liệu từ phần tử trong mảng total = arr(1) total = arr(1) Chỉ số dưới Lbound(arr) Lbound(arr) Chỉ số trên Ubound(arr) Ubound(arr) Lặp mảng 1 chiều For i = Lbound(arr) to Ubound(arr) Next i For i = Lbound (arr) to Ubound(arr) Next i Lặp mảng 2 chiều For i = Lbound(arr,1) to Ubound(arr,1) For j = Lbound(arr,2) to Ubound(arr,2) Next j Next i For i = Lbound(arr,1) to Ubound(arr,1) For j = Lbound(arr,2) to Ubound(arr,2) Next j Next i Lặp mảng Variant Dim item as Variant For Each item in arr Next item Dim item as Variant For Each item in arr Next item Function trả về mảng Function GetArray() As Long() Dim arr(0 To 5) As Long GetArray = arr End Function Function GetArray() As Long() Dim arr(0 To 5) As Long GetArray = arr End Function Xoá mảng Erase arr Erase arr Chuỗi => Mảng Không áp dụng cho mảng tĩnh Dim arr as Variant arr = Split(“Học-Excel-Online”,”-“) Mảng => Chuỗi Dim sName As String sName = Join(arr, ":") Dim sName As String sName = Join(arr, ":") Range => Array Không áp dụng cho mảng tĩnh Dim arr As Variant arr = Range("A1:D2") Array => Range Dim arr As Variant Range("A5:D6") = arr Dim arr As Variant Range("A5:D6") = arr Gán giá trị Không áp dụng cho mảng tĩnh Dim arr As Variant arr = Array(“Học”, “Excel”, “Online”) 53
  • 58. họcExcel.Online select * from [EXCEL] 17. Sub và Function trong Excel Từ đầu sách tới giờ, chúng ta đã làm việc rất nhiều với Sub - hay còn gọi là thủ tục. Sub giúp chúng ta tự động hoá được các quy trình làm việc. Ngoài Sub, VBA còn hỗ trợ Function. Function sẽ giúp cho chúng ta phải viết ít code lặp đi lặp lại hơn, hơn nữa Function còn có thể giúp chúng ta tự tạo ra những hàm người dùng (UDF - User Defined Function) để sử dụng trực tiếp được trên bảng tính. Sub Đặc điểm Khởi tạo Tạo Sub/Function với tham số Sub ChayBaoCao() ‘… code VBA End Sub Sub ChayBaoCao(TenSheet as String) Function DongCuoi(TenSheet as String) Function DongCuoi() as Long ‘… code VBA End Function 1. Có thể chạy từ Button, Event, … 2. Không trả về giá trị 1. Không chạy được từ Button, Event, … 2. Có thể trả về 1 giá trị hoặc đối tượng 3. Có thể sử dụng trên bảng tính Function Gọi Sub/Function Sử dụng Sub/Function Call ChayBaoCao ‘ hoặc ChayBaoCao Call DongCuoi ‘ hoặc DongCuoi Call ChayBaoCao(“CN1”) ‘ hoặc ChayBaoCao “CN1” Call DongCuoi(“CN1”) ‘ hoặc DongCuoi “CN1” Gọi Sub/Function với tham số Gán giá trị trả về từ Function vào biến - LR = DongCuoi(“CN1”) Trả về giá trị dạng nguyên thuỷ Function GetIndex as Long GetIndex = 234 End Function Trả về đối tượng từ Function (có thêm từ khoá Set) - Function GetSheet as Worksheet Set GetSheet = ActiveSheet End Function Thoát khỏi Sub / Function khi điều kiện thoả mãn If IsError(Range("A1")) Then Exit Sub End If If IsError(Range("A1")) Then Exit Function End If 54
  • 59. họcExcel.Online select * from [EXCEL] 18 .Hàm người dùng - UDF (User defined function) Hàm người dùng trong Excel VBA được viết như Function và có thể trả lại 1 giá trị được người dùng định nghĩa. Vì Function có thể trả lại được giá trị vậy nên nó có thể được sử dụng trên bảng tính. Ví dụ như sau: trong 1 Module (lưu ý: trong 1 Module), bạn có Function tính diện tích sau đây Cách dùng: dùng trực tiếp với số hoặc dùng với tham chiếu tới range Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ 55
  • 60. họcExcel.Online select * from [EXCEL] Dành riêng cho khách hàng thân thiết của Học Excel Online: Giảm giá 10% bất kì khoá học nào trong danh sách sau đây: Google Trang Tính, Sự Bổ Sung Tuyệt Vời Cho Excel https://goo.gl/bSrKkP https://goo.gl/afnKjfhttps://goo.gl/lYVR5d https://goo.gl/xLAAgYhttps://goo.gl/KUoxBb https://goo.gl/MGyJG3https://goo.gl/7QY9Tx Tổng hợp, phân tích và báo cáo với Pivot Table cơ bản trong Excel https://goo.gl/F1a0YI Tự tạo phần mềm quản lý kho với Excel và VBA Series ứng dụng VBA Excel vào kế toán - kế toán kho Hiểu và phân tích dữ liệu, ra quyết định với biểu đồ Excel Excel từ cơ bản đến chuyên gia dành cho người đi làm Lập trình VBA nâng cao trong Excel Thuyết trình chuyên nghiệp với PowerPoint Tự động hoá Excel với lập trình VBA cho người mới bắt đầu https://goo.gl/EhFj5E 56
  • 61. https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https://hocexcel.online https:// 57