Mẹ của tất cả các đối tượng là chính Excel. Chúng tôi gọi nó là đối tượng Ứng dụng. Đối tượng ứng dụng cho phép truy cập vào rất nhiều tùy 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 hàm Excel.

  1. Ví dụ: đặt một liên kết: / vba-create-a-macro # command-button [command button] `trên trang tính của bạn và thêm dòng mã sau:

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

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

WorksheetFunction in Excel VBA

Lưu ý: thay vì Application.WorksheetFunction.Average, chỉ cần sử dụng WorksheetFunction.Average. Nếu bạn nhìn vào thanh công thức, bạn có thể thấy rằng chính công thức đó không được chèn vào ô A3. Để chèn công thức vào ô A3, sử dụng dòng mã sau:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Đôi khi bạn có thể thấy hữu ích khi tắt cập nhật màn hình (để tránh nhấp nháy) trong khi thực thi mã. Kết quả là mã của bạn sẽ chạy nhanh hơn.

  1. Ví dụ: đặt liên kết: / vba-create-a-macro # command-button [command button] trên trang tính của bạn và thêm các dòng mã sau:

Dim i As Integer

For i = 1 To 10000

Range("A1").Value = i

Next i

Khi bạn nhấp vào nút lệnh trên trang tính, Excel VBA sẽ hiển thị mỗi giá trị một phần nhỏ của giây và điều này có thể mất một chút thời gian.

ScreenUpdating

  1. Để tăng tốc quá trình, hãy cập nhật mã như sau.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000

Range("A1").Value = i

Next i

Application.ScreenUpdating = True

Kết quả là mã của bạn sẽ chạy nhanh hơn nhiều và bạn sẽ chỉ thấy kết quả cuối cùng (10000).

DisplayAlerts

Bạn có thể hướng dẫn Excel VBA không hiển thị cảnh báo trong khi thực thi mã.

  1. Ví dụ: đặt liên kết: / vba-create-a-macro # command-button [command button] `trên trang tính của bạn và thêm dòng mã sau:

ActiveWorkbook.Close

Khi bạn bấm vào nút lệnh trên trang tính, Excel VBA sẽ đóng tệp Excel của bạn và yêu cầu bạn lưu các thay đổi bạn đã thực hiện.

DisplayAlerts

  1. Để hướng dẫn Excel VBA không hiển thị cảnh báo này trong khi thực thi mã, hãy cập nhật mã như sau.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Do đó, Excel VBA đóng tệp Excel của bạn mà không yêu cầu bạn lưu các thay đổi bạn đã thực hiện. Mọi thay đổi đều bị mất.

Tính toán

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

  1. Ví dụ: đặt liên kết: / vba-create-a-macro # command-button [command button] `trên trang tính của bạn và thêm dòng mã sau:

Application.Calculation = xlCalculationManual

Khi bạn nhấp vào nút lệnh trên trang tính, Excel VBA sẽ đặt tính toán thành thủ công.

  1. Bạn có thể xác minh điều này bằng cách nhấp vào Tệp, Tùy chọn, Công thức.

Calculation Options

  1. Bây giờ khi bạn thay đổi giá trị của ô A1, giá trị của ô B1 không được tính lại.

Manual Calculation

Bạn có thể tính toán lại sổ làm việc theo cách thủ công bằng cách nhấn F9.

  1. Trong hầu hết các tình huống, bạn sẽ đặt tính toán thành tự động trở lại khi kết thúc mã của mình. Chỉ cần thêm dòng mã sau để đạt được điều này.

Application.Calculation = xlCalculationAutomatic