Tôi gặp vấn đề lạ với thứ tự tính toán Excel - ô phụ thuộc được tính toán trước ô trước với giá trị tham số trống khi thiết lập phạm vi bẩn. Có cách nào để phát hiện các cuộc gọi "giả" đó không? Điều quan trọng đối với tôi khi tôi chạy một số logic kinh doanh thông minh trong ứng dụng thế giới thực và những cuộc gọi "giả" đó phá vỡ mọi logic. Ngoài ra những cuộc gọi "giả" nếu đăng ký với RTD không ràng buộc nó vào chủ đề đúng và do đó không thông báo cho chủ đề ngắt kết nối.Thứ tự tính toán lại Excel - tại sao ô phụ thuộc tính trước ô trước?
Excel 2010/32bit mới nhất tất cả.
Để minh họa cho vấn đề tôi đã tạo ra chức năng đơn giản:
Function Fnc(param2 As String) As String
Fnc = Application.ThisCell.Address
Debug.Print (Application.ThisCell.Address & " - " & param2)
End Function
Và thủ tục:
Sub SetDirty()
Range("B1:C1").Dirty
End Sub
Và tờ đơn giản:
$ A $ 1 = FNC (A1) = FNC (B1)
vào các tế bào A1, B1, C1.
Và kết quả rõ ràng:
$ A $ 1 $ B $ 1 $ C $ 1
Nếu tôi tính toán lại (CTRL + Alt + phím Shift + F9) tôi nhận được, như mong đợi :
$ B $ 1 - $ A $ 1
$ C $ 1 - $ B $ 1
Nhưng, đây là phần thú vị. Nếu tôi chạy SetDirty:
$ C $ 1-< ---- đâu này đến từ đâu?
$ B $ 1 - $ A $ 1
$ C $ 1 - $ B $ 1
Thanks cho bất kỳ đầu vào. Tôi muốn một giải pháp giải quyết vấn đề này, không phải là một giải pháp vì nó đã là một phần của loạt các giải pháp.
Trang này: http://www.decisionmodels.com/calcsecretsc.htm và các trang khác tại cùng một trang web, sẽ trả lời câu hỏi của bạn. Đó là tác giả cũng thường xuyên trên Satckoverflow. – jtolle
Nó không rõ ràng với tôi những gì bạn đang đưa vào đó các tế bào Excel - cau bạn xin chụp ảnh màn hình hoặc làm rõ ví dụ của bạn? – brettdj
@brettdj như tôi đã nói trong bài viết của tôi: $ A $ 1 = fnc (A1) = fnc (B1) vào các ô A1, B1, C1 đơn giản vì đó là – Arnas