我有一個奇怪的問題,Excel計算順序 - 依賴的單元格在設置範圍髒時,先前的單元格在空單元值之前計算。有什麼方法可以檢測到這些「假」電話?當我在真實世界的應用程序中運行一些聰明的業務邏輯時,這對我來說至關重要,而這些「假」的調用會打破所有的邏輯。此外,如果通過RTD註冊,這些「假」呼叫不會正確地將其綁定到主題,因此不會通知主題斷開連接。Excel重新計算順序 - 爲什麼依賴單元格在先前單元格之前計算?
Excel 2010/32bit最新全部。
爲了說明問題,我已經創建簡單函數:
Function Fnc(param2 As String) As String
Fnc = Application.ThisCell.Address
Debug.Print (Application.ThisCell.Address & " - " & param2)
End Function
和程序:
Sub SetDirty()
Range("B1:C1").Dirty
End Sub
而簡單片:
$ A $ 1 = FNC(A1)= FNC(B1 )
分解成單元格A1,B1,C1。
而且效果明顯:
$ A $ 1 $ B $ 1 $ C $ 1
如果我重新計算(CTRL + Alt鍵 + 移 + F9)我得到的,如預期:
$ B $ 1 - $ A $ 1
$ C $ -1 - $ B $ 1
但是,這裏有趣的部分。如果我運行SetDirty:
$ C $ 1 - < ----這是從哪裏來的?
$ B $ 1 - $ A $ 1
$ C $ -1 - $ B $ 1
感謝您的任何輸入。我更喜歡解決這個問題的解決方案,而不是解決方法,因爲它已經是一大堆解決方案的一部分。
本頁:http://www.decisionmodels.com/calcsecretsc.htm,和其他人在同一網站,應該回答你的問題。它的作者也是Satckoverflow上的常規作者。 – jtolle
對我而言,不清楚你在哪些Excel單元格中放置什麼 - 請注意,你可以截圖或者說明你的例子嗎? – brettdj
@brettdj正如我在我的文章中所說:$ A $ 1 = fnc(A1)= fnc(B1)到單元格A1,B1,C1簡單,因爲那個 – Arnas