Board logo

標題: 請求前輩們協助看看程式出錯處, [打印本頁]

作者: 周大偉    時間: 2018-5-26 13:24     標題: 請求前輩們協助看看程式出錯處,

請求前輩們協助看看程式出錯處,
附檔, 內有說明,
感謝!!!
[attach]28771[/attach]
作者: iamaraymond    時間: 2018-5-26 14:38

回復 1# 周大偉

不太清楚您的情況
如果想避免觸發事件的話可以用
Application.EnableEvents=false
但若可以看到原檔案會比較清楚您的問題
作者: 周大偉    時間: 2018-5-26 16:20

回復 2# iamaraymond
謝謝前輩回應,
小弟錯把原檔案上傳, 現把有程式檔案重新上傳, 希望能得到協助, 謝謝, 感恩..
[attach]28773[/attach]
作者: iamaraymond    時間: 2018-5-26 16:40

回復 3# 周大偉

您說的錯誤是不是變數未定義?
如果是的話只要在
Private Sub Worksheet_SelectionChange(ByVal T As Range)
底下加一句
Dim c As Variant

應該就可以了
作者: 周大偉    時間: 2018-5-26 19:45

回復 4# iamaraymond
感謝前輩,
加入這句, 問題已解决, 謝謝協助, 祝身體健康, 快樂..謝謝!!
作者: 周大偉    時間: 2018-5-27 09:41

回復 4# iamaraymond
前輩, 早晨
想知多點,
Private Sub Worksheet_SelectionChange(ByVal T As Range)
底下加一句
Dim c As Variant
除了這加多一句, 可還有其他語法或方法取代,
其實加多一句後, 問題已解决, 只是想知多D, 學多D,
謝謝!!
作者: iamaraymond    時間: 2018-5-27 11:04

本帖最後由 iamaraymond 於 2018-5-27 11:05 編輯

回復 6# 周大偉

其實這個問題源自於最上面那一句
option explicit
若寫了這句語法就代表要必須宣告你每一個使用的變數
例如捕的這一句
dim c as variant
就是宣告c這個變數是一個variant的型態

使用option explicit有幾個優點是
1.程式會運行較快,因為你宣告了每一個變數,那麼電腦就不要還要花時間幫你判斷哪個變數是哪個類型
2.降低錯誤率,有時候我們會不小心打錯字
例如我今天用stockno紀錄股票代號,結果我後面在使用時不小心漏了一個字打成stckno,那這樣就可能造成程式出錯
而使用option explicit他就會幫你檢查,在你程式運作之前,他就會跟你說stckno沒定義
這時候你就可以檢查到你打錯字了

但麻煩的是...每一個變數都要定義XD

所以另一個解決方式就是把option explicit拿掉
他就不會強制你每個變數都要定義了
作者: 周大偉    時間: 2018-5-27 11:32

回復 7# iamaraymond
大大早晨
小弟受教了, 但我還是想向大大請教, 如拿掉option explicit, 就該如何拿掉, 希望大大指點, 謝謝!!
作者: iamaraymond    時間: 2018-5-27 11:47

回復 8# 周大偉

您是說如何拿掉嗎?
就把option explicit這句刪掉就好
作者: 周大偉    時間: 2018-5-27 12:09

回復 9# iamaraymond
謝謝大大,
明白,
祝健康, 快樂..
作者: nolookyou    時間: 2018-5-28 14:31

看完此篇整串對話,
從某個角度來說,上面整串對話還蠻......有趣的XD

這應該就是標準的發問者與解題者認知有一點點...不同~哈

舉例來說,版主在8樓問:如拿掉option explicit, 就該如何拿掉
但其實 i大 在7樓已經把8樓問題的主要的答案說出來了:必須宣告你每一個使用的變數~^^
作者: c_c_lai    時間: 2018-5-29 08:38

回復 10# 周大偉
在程式撰寫過程中,最好養成事前正確地做變數宣告,
莫要偷懶掉這個宣告習慣,如此你可以全盤理解撰寫
之程式在執行環境中扮演之腳色地位,同時在事後之
程式修正及維護上亦較有條理與容易。
所以建議還是不要去捨 option explicit 的語法。
作者: 周大偉    時間: 2018-5-29 10:05

回復 12# c_c_lai

感謝教導,祝健康快樂。




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