Tôi có thể buộc script vba của tôi phải đợi cho đến khi Application.Calculate kết thúc để tính toán lại tất cả các công thức không?Chờ cho đến khi Application.Calculate đã hoàn thành
Trả lời
Ngoài nhận xét của tôi, bạn có thể sử dụng DoEvents với Application.CalculationState
. Xem ví dụ
Application.Calculate
If Not Application.CalculationState = xlDone Then
DoEvents
End If
'~~> Rest of the code.
này Nếu bạn muốn, bạn cũng có thể sử dụng một Do While Loop
để kiểm tra Application.CalculationState
Tôi cũng muốn giới thiệu thấy liên kết này
Topic: Application.CalculationState tài sản
Liên kết: http://msdn.microsoft.com/en-us/library/bb220901%28v=office.12%29.aspx
Trích Từ Trên Liên kết
Trả một hằng số XlCalculationState cho biết tình trạng tính của ứng dụng, đối với bất kỳ tính toán đang được thực hiện trong Microsoft Excel. Chỉ đọc.
Tôi đã sử dụng mã để giải quyết sự cố trong đó vòng lặp tính toán khóa một phần thông qua. Tôi nghĩ rằng nó có thể là bởi vì nó cần phải chờ đợi cho đến khi tính toán đầy đủ đã hoàn thành trước khi nhập bộ giá trị tiếp theo. Khi tôi chèn mã Application.Calculate, vấn đề được giải quyết. Vòng lặp hiện đang chạy để hoàn thành.
Thêm 'DoEvents' sau' Application.Calculate' –