大家好,在第47和48講中,我們比較詳細地給大家講解了各種模塊的有效行為。大家可以窺探到各種模塊的實質,有了對於模塊的認識,我們在寫代碼時就可以更好的把握自己的工程。那麼對於一個工程而言,從需求,到思路的建立,到代碼的編寫,是不是就行了呢?不是的,在代碼編寫完後還有非常重要的一步,就是代碼的調試。
關於VBA代碼的調試,無論是標準模塊的代碼,還是窗體模塊的代碼,或者類模塊中的代碼,調試都是寫代碼工程中一項重要的工作。當房子建好後,我們首先要測試房子的各項指標是否達到了我們要求,這個就是程序調試。不是每個程序寫完後都能馬上正常運行,在某種程度上講,寫完代碼後的調試本身就是寫代碼的一部分。有的程序調試過程很快,有的會時間長些,有的甚至會推倒重來。
一什麼是程序調試
所謂程序的調試,就是編制的程序在投入實際運行前,要進行的測試。
測試過程包括修正語法錯誤和邏輯錯誤。這是保證程序正確性的必不可少的步驟。通過測試時所發現的錯誤,要進行診斷,找出原因和具體的位置進行修正,從而完善程序。說的直白些,就是說你的房子搭建好後,在你搬家之前進行的綜合檢驗。
二程序調試的範圍
程序調試的範圍較廣,一般包括如下幾個方面:
1語法錯誤的檢驗:每一種語言都有自己的語法習慣,你寫的代碼必須要符合這些規範,而且是必須的。錯一絲一毫也通不過。比如半角、全形;參數是否傳遞正確,是否有相應的屬性等等。
2運行過程的檢驗:需要注意循環是否是閉合,with語句是否是閉合,參數的定義範圍,數組的上下標是否越界等等。
3實際結果的檢驗:上面的第一第二都通過了,程序開始運行,但運行的結果不一定是你期望的結果。這就要考慮邏輯問題了。
4程序優化的檢驗,如果結果和你的預想一致,那麼是否就說明程序完美了?不是的,還要有程序優化問題,包括:代碼可讀性是否強;佔用內存是否最少;運行時間是否最短;可視效果是否最佳。
三代碼調試的原則
1分析思考與錯誤徵兆有關的信息。
2調試的過程也是自己再學習的過程。
3修改錯誤的同時應避免產生新的錯誤。
四代碼調試的方法
1 代碼寫完後要再次閱讀,要最大限度地減少書寫的錯誤。
2 在大腦中模擬運行,這個過程十分關鍵。要讓代碼在你的大腦中先運行,看運行的步驟,哪個過程先執行,哪個後執行,數據怎麼進行查找等等,這個過程也是檢查你寫代碼的邏輯是否嚴謹。這個內容在《VBA代碼解決方案-視頻講解》中我曾經多次地講到。
3 分過程小範圍調試,上述的步驟之後,開始真正的調試了,要先小範圍的調試,看看數值的關係是否正確。充分利用語句的中斷符,msgbox , 臨時參數,分步驟運行等等。
4 總體的測試,小範圍測試沒問題後,開始執行大範圍的測試。這個時候主要看最終的執行結果了,這個時候要設置特殊值來校驗,不要一開始就執行幾千幾萬的數據,要從幾行開始。根據我的經驗,一般出現問題常在一首一尾,所以要重視首尾的數據運行結果。如果與自己大腦的設想結果全然不符,就要檢查你編程的邏輯了。
5 數據的追蹤。當出現了非預期的數值或者現象的時候,要知道如何去追蹤數據,這裡就靠自己的經驗了,但仍要注意語句的中斷符,msgbox , 臨時參數的利用。
今日內容回向:
1 代碼調試的意義是什麼?
2 如何理解代碼的調試行為?
在取代OFFICE新的辦公軟體沒有到來之前,誰能在數據處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!眾鳥高飛盡,孤雲獨去閒。相看兩不厭,只有敬亭山。
學習VBA是個過程,這個過程是自己忍受孤獨的過程。
「水善利萬物而不爭」,你看她綿綿密密,微處則無聲,巨則洶湧。學習亦如此,把握現在,為達千裡,需要默默耕耘,知道什麼是自己所需要的,不要蜷縮在一小塊自認為天堂的世界裡,待到暮年時去自欺欺人。要在當下,用一顆充滿生機的心靈,努力提高自己,這才是進取。越是有意義的事情,困難會越多。願力決定始終,智慧決定成敗。不管遇到什麼,都是風景。看淡紛爭,看輕得失。一杯茶,滿也好,少也好,不要去計較;濃也好,淡也好,其中都有值得品的味道。去感悟真實的時間,靜下心,多學習,積累福報。而不是天天混日子,也不是天天熬日子。一切眾生的心都在變化,像時間一樣,永遠不會停留,把握現在就是福報。
VBA是利用Office實現自己小型辦公自動化的有效手段,我記得20年前自己初學VBA時,那時的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了五部VBA專門教程,回向給需要學習的朋友:
第一套:VBA代碼解決方案是VBA中各個知識點的講解,覆蓋絕大多數的VBA知識點,初學必備;
第二套:VBA資料庫解決方案資料庫是數據處理的專業利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作。
第三套:VBA數組與字典解決方案數組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學習。
第四套:VBA代碼解決方案之視頻是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。
第五套:VBA中類的解讀和利用這是一部高級教程,講解類的虛無與肉身的度化,可以對促進自己理論的提高。
學習的過程也是修心的過程,修一個平靜的心。在代碼的世界中,心平靜了,心情好了,身體自然而然就好。心靜則正,內心裡沒有那麼多邪知邪見,也就沒有那麼多妄想。在平靜中積累自己的財富。我的上述教程是我多的經驗的傳遞,大家可以根據1,3,2,5或者是4,3,2,5的順序逐漸深入的逐漸學習。
最後將一闕詞送給致力於VBA學習的朋友:
浮雲掠過,暗語無聲,
唯有清風,驚了夢中啼鶯。
望星,疏移北鬥,
奈將往事雁同行。
阡陌人,昏燈明暗,忍顧長亭。
多少VBA人,
暗夜中,悄聲尋夢,盼卻天明。
怎無憑!
分享成果,隨喜正能量