Excel là một trong những dạng đối tượng. Chúng tôi gọi đó là các đối tượng
Ứng
dụng. Các đối tượng ứng dụng 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 .
1 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng 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 chuột vào nút CommandButton1 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 và đặt kết quả vào ô A3 .
Lưu ý : thay vì Application.WorksheetFunction.Average , chỉ đơn giản là 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 các công thức đó không được đưa vào ô A3 . Để chèn các 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ể tìm thấy hữu ích khi tắt chức năng cập nhật màn hình tự
động (để tránh nhấp nháy) trong khi thực hiện mã. Kết quả là , mã của bạn
sẽ chạy nhanh hơn .
1 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng 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 chuột vào nút lệnh trên bảng tính, Excel VBA hiển thị mỗi giá
trị là một phần nghìn giây và điều này có thể mất thời gian .
2 . Để tăng tốc độ quá trình, cập nhật các 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 và bạn sẽ chỉ nhìn 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 một
Application Objectnút
lệnh trên bảng tính của bạn và thêm dòng mã sau :
ActiveWorkbook.Close
Khi bạn nhấp chuột vào nút lệnh trên bảng tính, Excel VBA đóng tập tin
Excel của bạn và yêu cầu bạn lưu các thay đổi bạn đã thực hiện .
2 . Để hướng dẫn Excel VBA không hiển thị cảnh báo này trong khi thực thi mã
, cập nhật các mã như sau .
Application.DisplayAlerts = False
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts
= True
Kết quả là , Excel VBA đóng tập tin 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 . Bất kỳ thay đổi chưa nhớ sẽ bị mất.
Tính toán
Theo mặc định , tính toán được thiết lập để tự động. Kết quả là , 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 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng tính của bạn và thêm dòng mã sau :
Application.Calculation = xlCalculationManual
Khi bạn nhấp 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 nhấp vào File, Options, công thức
.
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.
Bạn có thể tự 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 của mã của bạn . Đơn giản chỉ cần thêm dòng mã sau đây để đạt được
điều này .
Application.Calculation
= xlCalculationAutomatic
Excel là một trong những dạng đối tượng. Chúng tôi gọi đó là các đối
tượng
Ứng dụng. Các đối tượng ứng dụng 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 .
1 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng tính của bạn và thêm dòng mã sau :
Range("A3").Value =
Application.WorksheetFunction.Average(Range("A1:A2"))
Application Object
Khi bạn nhấp chuột vào nút CommandButton1 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 và đặt kết quả vào ô A3
.
Lưu ý : thay vì Application.WorksheetFunction.Average , chỉ đơn giản là 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 các công thức đó không được đưa vào ô A3 . Để chèn các 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ể tìm thấy hữu ích khi tắt chức năng cập nhật màn hình
tự động (để tránh nhấp nháy) trong khi thực hiện mã. Kết quả là , mã của
bạn sẽ chạy nhanh hơn .
1 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng 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 chuột vào nút lệnh trên bảng tính, Excel VBA hiển thị mỗi giá
trị là một phần nghìn giây và điều này có thể mất thời gian .
2 . Để tăng tốc độ quá trình, cập nhật các 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 và bạn sẽ chỉ nhìn 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 một
Application Objectnút
lệnh trên bảng tính của bạn và thêm dòng mã sau :
ActiveWorkbook.Close
Khi bạn nhấp chuột vào nút lệnh trên bảng tính, Excel VBA đóng tập tin
Excel của bạn và yêu cầu bạn lưu các thay đổi bạn đã thực hiện .
2 . Để hướng dẫn Excel VBA không hiển thị cảnh báo này trong khi thực thi
mã , cập nhật các mã như sau .
Application.DisplayAlerts = False
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts
= True
Kết quả là , Excel VBA đóng tập tin 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 . Bất kỳ thay đổi chưa nhớ sẽ bị mất.
Tính toán
Theo mặc định , tính toán được thiết lập để tự động. Kết quả là , 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 . Ví dụ , đặt một
Application Objectnút
lệnh trên bảng tính của bạn và thêm dòng mã sau :
Application.Calculation = xlCalculationManual
Khi bạn nhấp 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 nhấp vào File, Options, công
thức .
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.
Bạn có thể tự 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 của mã của bạn . Đơn giản chỉ cần thêm dòng mã sau đây để đạt
được điều này .
Application.Calculation = xlCalculationAutomatic