Board logo

標題: [發問] 外部連結資料DDE觸發Calculate事件,打開檔案都告訴我型態不符合??? [打印本頁]

作者: 三寶    時間: 2010-10-17 22:05     標題: 外部連結資料DDE觸發Calculate事件,打開檔案都告訴我型態不符合???

以下是我自己寫的VBA:

Private Sub Worksheet_Calculate()

If [g6] < 0 Then
[f6] = 17000 + [e6] * 50
ElseIf [g6] >= 8000 Then
[f6] = 9000 + [e6] * 50
ElseIf 0 <= [g6] < 8000 Then
[f6] = 17000 - [g6] + [e6] * 50

End If
End Sub

我的儲存格都是數字
[g6]跟[e6]是DDE連結外部資料,會一直變動
所以[f6]會一直計算,

如果我把這個語法放在巨集marco1,
然後在Private Sub Worksheet_SelectionChange(ByVal Target As Range)宣告marco1,
那它就可以正常運作,
只是每次要隨便點一下工作表,它才會執行
因為我的資料是每秒都在變的,所以我想把它放在Calculate裡,
可是這樣的話,我每次打開檔案它就告訴我"執行階段錯誤13,型態不符合"
請問是哪裡出錯??應該怎麼改??
感恩感恩..
作者: oobird    時間: 2010-10-17 22:16

你這個沒有類型問題,怎會出現此現象?
錯誤停在那一行?我覺得應該是其他模組的問題。
作者: 三寶    時間: 2010-10-17 22:34

感謝oobird回覆,
我偵錯時是停在第一行
If [g6] < 0 Then    <----這一行會變黃色
我打開檔案的時候,[g6]的值是5萬多,但是它會變動的,這應該不影響吧?
還有,其實我總共有35組這樣的程序,我只有列出一組而已,
因為每一組的公式都一樣,
都是參照它左右兩邊的儲存格來計算,
就是說[f7]會參照[g7]跟[e7]
         [f8]會參照[g8]跟[e8]
以此類推,
不知道這會不會有影響??
感謝您...
作者: oobird    時間: 2010-10-17 22:53

Private Sub Worksheet_Calculate()
on error goto 1
------原有代碼------
-----
1
end sub
加上除錯試試。
作者: Hsieh    時間: 2010-10-17 22:55

應該是開檔重算時DDE未傳回資料
[g6]跟[e6]傳回NA#的錯誤值
作者: 三寶    時間: 2010-10-17 23:46

搞定了!!!
oobird版大,感謝感謝再感謝...
真的行了,加上除錯真是一勞永逸,
真是謝謝你.
還有Hsieh版大,您講的也沒錯,
真是解開了我心中的結,
因為我一直不懂為什麼放在巨集就可以正常運作,
現在我知道了,因為等它傳回正確的值之後就一切正常,
一開檔的時候傳回NA#錯誤值當然發生錯誤,
真是謝謝二位幫小弟解惑,
謝謝.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)