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"))
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)"
Đô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
For i = 1 To 10000
Range("A1").Value = i
Next i
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
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 ) .
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
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.
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
ActiveWorkbook.Close
Application.DisplayAlerts = True
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 :
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 :
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 :
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 .
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 :
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 .
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 :
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 .
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)"
Đô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
For i = 1 To 10000
Range("A1").Value = i
Next i
Dim i As Integer
Application.ScreenUpdating
= False
For i = 1 To 10000
Range("A1").Value = i
Next i
Application.ScreenUpdating = True
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 ) .
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
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.
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
ActiveWorkbook.Close
Application.DisplayAlerts = True
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
Post a Comment