Bài viết này giới thiệu với các bạn về ngôn ngữ lập trình trong
Excel được gọi là VBA (Visual Basic for Applications). Ta sử dụng ngôn ngữ lập trình VBA để viết ra
các macro là các chương trình hoàn chỉnh. Các chương trình này sẽ thực hiện tự
động các lệnh mà bạn đã viết ra cho nó.
Ví dụ:
Bạn quản lý 2 cửa hàng. Hàng ngày, 2 cửa hàng này gửi
số liệu bán hàng về cho chúng ta và ta phải lập một file tổng hợp số liệu của cả
2 cửa hàng. Ta có 3 file là file Tổng hợp dữ liệu, file Dữ liệu cửa hàng 1,
file Dữ liệu cửa hàng 2.
Ta sẽ tạo một macro để xoá dữ liệu của ngày cũ, sau đó
mở lần lượt file dữ liệu của từng cửa hàng và copy dữ liệu đó vào một file tổng
hợp.
Ta làm như sau :
Trên thanh công cụ vào Developer, chọn Visual Basic,
chọn Insert Module. Viết chương trình bằng ngôn ngữ VBA như sau để tạo macro thực
hiện các công việc như ta mong muốn :
Sub Tonghopdulieu()
' Tonghopdulieu Macro
Sheets("Sheet1").Select
Range("A2:E2").Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.ClearContents
Range("A2").Select
Workbooks.Open Filename:= _
"C:\Users\Hanh Le\Desktop\
File du lieu\Du lieu cua hang 1.xlsx"
Range("A2:E2").Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.Copy
Windows("Tong hop du lieu.xlsm").Activate
ActiveSheet.Paste
Range("A2").Select
Selection.End(xlDown).Offset(1, 0).Select
Workbooks.Open Filename:= _
"C:\Users\ Hanh Le\Desktop\
File du lieu\Du lieu cua hang 2).xlsx"
Range("A2:E2").Select
Range(Selection,
Selection.End(xlDown)).Select
Application.CutCopyMode =
False
Selection.Copy
Windows("Tong hop du lieu.xlsm").Activate
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode =
False
ActiveWorkbook.Save
End Sub
Ta vừa tạo xong một macro có tên là Tonghopdulieu. Để
thực hiện việc tổng hợp dữ liệu tự động, ta chỉ việc chạy macro này bằng cách
nhấn nút run để chạy chương trình.
Tài liệu tham khảo
http://www.homeandlearn.org/index.html
http://excelvbatutor.com/vba_tutorial.html
Tài liệu tham khảo
http://www.homeandlearn.org/index.html
http://excelvbatutor.com/vba_tutorial.html
No comments:
Post a Comment