Macro VBA – Application Object (Đối tượng ứng dụng trong Excel)

Đối tượng đứng đầu trong các đối tượng chính là Excel, các đối tượng này được gọi là Application Object. Các Application Object cho phép truy cập đến rất nhiều lựa chọn liên quan đến Excel.

WorksheetFunction

Bạn có thể sử dụng thuộc tính WorksheetFunction trong Excel VBA để truy cập các chức năng Excel.

Đặt command button  trên worksheet và thêm dòng mã sau đây:

Range(“A3”).Value = Application.WorksheetFunction.Average(Range(“A1:A2”))

Khi bạn nhấp chuột vào nút lệnh trên bảng tính, Excel VBA tính trung bình cộng của các giá trị trong ô A1 và ô A2 sau đó đặt kết quả vào ô A3.

32

Lưu ý: thay vì Application.WorksheetFunction.Average, ta có thể sử dụng WorksheetFunction.Average. Nếu bạn nhìn vào thanh formula bar (chỗ có chữ fx), bạn có thể thấy rằng các công thức đó không được đưa vào ô A3. Để đưa công thức đó vào ô A3, sử dụng đoạn code sau:

Range(“A3”).Value = “=AVERAGE(A1:A2)”

ScreenUpdating (Cập nhật màn hình)

Đôi khi bạn có thể cần vô hiệu hóa màn hình cập nhật (để tránh nhấp nháy) trong khi thực hiện code. Và việc này sẽ làm cho code của bạn chạy nhanh hơn.

1. Đặt command button button trên worksheet và thêm dòng mã sau đây:

Dim i As Integer
For i = 1 To 10000
Range(“A1”).Value = i
Next i

Khi bạn click chuột vào command button, Excel VBA hiển thị mỗi giá trị với một phần nhỏ của một giây nhưng hiển thị rất lần, điều này có thể làm mất thời gian.

33

2. Để tăng tốc độ xử lý, cập nhật thêm đoạn code như sau.

Dim i As IntegerApplication.ScreenUpdating = False
For i = 1 To 10000
Range(“A1”).Value = i

Next iApplication.ScreenUpdating = True

Kết quả là, code của bạn sẽ chạy nhanh hơn và bạn sẽ chỉ nhìn thấy kết quả cuối cùng (10000).

DisplayAlerts (Hiển thị cảnh báo)

Bạn có thể yêu cầu Excel VBA không hiển thị cảnh báo trong khi thực thi mã.

1. Đặt command button trên worksheet và thêm dòng mã sau đây

ActiveWorkbook.Close

Khi bạn nhấp chuột vào command button trên worksheet, Excel VBA đóng tập tin Excel của bạn và hỏi bạn có muốn lưu các thay đổi bạn đã thực hiện.

34

2. Để yêu cầu Excel VBA không hiển thị cảnh báo này, cập nhật code như sau

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

Cậu lệnh này thích hợp sử dụng khi bạn thực hiện các công việc với excel mà không muốn excel đưa ra cảnh bảo (lúc save file, lúc close file, lúc open file mà có update link, …).

Calculation (Tính toán)

Theo mặc định, calculation được thiết lập để tự động, Excel sẽ tính toán lại bảng tính tự động mỗi khi một giá trị ảnh hưởng đến một công thức thay đổi. Nếu bảng tính của bạn có chứa nhiều công thức phức tạp, bạn có thể tăng tốc độ macro của bạn bằng cách thiết lập tính toán thủ công.

1. Đặt command button trên worksheet và thêm dòng mã sau đây:

Application.Calculation = xlCalculationManual

Khi bạn click chuột vào nút lệnh trên bảng tính, Excel VBA lập tính toán thủ công.

2. . Bạn có thể xác minh điều này bằng cách click vào File, Excel Options, Formulas

35

3. Bây giờ khi bạn thay đổi giá trị của ô A1, giá trị của ô B1 là không tính toán lại (công thức của ô B1 là: = A1)

36

Bạn có thể tính toán lại bảng tính, bằng cách nhấn F9.

4. . Trong hầu hết các trường hợp, bạn sẽ thiết lập tính năng tự động trở lại vào cuối đoạn code của bạn. Đơn giản chỉ cần thêm dòng code sau :

Application.Calculation = xlCalculationAutomatic

Gửi nhận xét