2012-06-30 28 views

Trả lời

28

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.

+0

+1 câu trả lời hay Sid. – brettdj

+0

Đó chính xác là điểm, cảm ơn bạn! –

+4

Tôi dựa vào mã ví dụ này vì nó thường được cung cấp trên internet nhưng nó không hoạt động. DoEvents sẽ _not_ chặn cho đến khi tính toán hoàn thành và có hiệu quả là không có op trong mã ví dụ của bạn. – user65

0

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.

Các vấn đề liên quan