Friday, January 16, 2015

Application Object

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 . Application Object
 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 . ScreenUpdating
 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 .
DisplayAlerts
 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 . Calculation Options 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. Manual Calculation 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 . WorksheetFunction in Excel VBA
 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 . ScreenUpdating 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 .
DisplayAlerts
 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 . Calculation Options 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. Manual Calculation
 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

No comments:

Post a Comment