VBA代碼的調試行為

2021-01-09 VBA語言專家

大家好,在第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人,

暗夜中,悄聲尋夢,盼卻天明。

怎無憑!

分享成果,隨喜正能量

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 你的第一行VBA代碼
    今天帶你寫第一行vba代碼1.新建啟用宏的工作簿:打開excel軟體,將文件保存為啟用宏的工作簿:2. 點擊「文件」-》「選項」,把開發工具選項卡加到頂部選項卡:3.去除個人信息設置:將隱私選項中的保存個人信息勾選框取消勾選。
  • Excel VBA 代碼結構組成解剖,初學的你可知道
    在上一期我們說到如何去學習VBA,那麼我們今天就來說說Excel VBA代碼的結構構成部分。我們先簡單看一段代碼,如下圖所示:上方的代碼的意思是,從1+2+3+4+5一直加到1000,最後用VBA函數最後的顯示結果。
  • Excel VBA常用代碼!
    前兩天有兩位朋友留言想收集一些VBA的常用代碼,今天開始會陸續分享一些!記得收藏好哦,因為今後你應用到稍大型Excel VBA程序時,這其中某些代碼肯定會用到。來看看都是哪些常用代碼:下面先舉一個簡單的例子:場景再現:在當前的工作表中插入一張e盤中名為1.jpg的圖片(長350、高300,距離Excel左側90、上邊框230)操作方法:第一步,打開vba代碼區,輸入通用格式【輸入 sub 統計()回車即可】,並將名稱改為「統計」;第二步,輸入控制語句(ActiveSheet.Shapes.AddPicture
  • 如何用vba代碼創建超連結,把這個方法學會,就懂了
    這裡介紹一下對應的vba代碼來如何實現,添加、刪除和收藏超連結功能。本例用到一個對象,Hyperlink。超文本連結對象,和它的集合對象Hyperlinks。其實vba裡大多數都有單數和複數的對象,分別表示一個和多個。
  • Excel VBA流程圖解之For循環的本質 原來系統偷偷幹了很多事
    今天我們來看一下For循環,我相信所有學vba的朋友肯定要用For循環,但是你是否知道為什麼你3條語句就能成為一個循環呢?系統在語句的前後幫我做了那些事,下面這張圖說明了一切!!For 循環的語句形式計數器和步長值不一定是整數,但是建議始終用整數,用小數會造成一些不必要的麻煩,特殊時候可以用一下在for 和next之間任意位置 可以用exit for退出循環,用以在出現特殊情況的時候提前結束循環循環語句可以嵌套下一層循環,以及其他的完整vba語句比如 if select case等,注意這裡必須是完整的語句塊。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    所有的修改都無需改動代碼。數據源文件與顯示文件是獨立分開的。本文要點:使用 xlwings 註冊 Python 方法到 Vba 模塊Vba 調用 Python 方法,輸出結果到 Excel注意:雖然本文是"Python替代Excel Vba"系列,但希望各位讀者明白,工具都是各有所長,選擇適合的工具,才是最好的。
  • 利用VBA代碼,對Excel表格進行字體設置
    No.1字體設置是Excel或Word辦公軟體最簡單的操作,下面把所有字體對象的屬性羅列一遍,介紹一下,如何使用vba代碼進行相應的字體設置。下圖為字體對象Font的所有屬性。一共18個。下面重點看一下代碼,如何來實現。
  • VBA代碼解決方案第137講:VBA代碼打開任意程序的方法
    大家好,我們今日繼續講解VBA代碼解決方案的第137講內容:VBA代開任意程序的方法。我們在寫代碼的時候,有時候會必須打開另外一個文件,今日的內容就是解決這個問題,在VBA代碼中如何可以打開其他的程序呢?我講解兩種方法。一Shell函數。該函數讓你可以從VBA過程裡直接打開任意程序。Shell函數是什麼呢?
  • Vba第十九課
    代表任何一個單一字符「*」 代表零個或多個字符「#」 代表任何一個數字(0-9)Like對英文字符比較是區分大小寫的,也就是不匹配例:Sub like語句() If 「Vba」 like 「vba」 then Msgbox」匹配」 Else Msgobx」不匹配」
  • vba第十七課
    vba第十七課with語句當對某一個對象執行一系列語句時,不用重複指出對象名稱例:用vba代碼進行排版,加上黑色邊框,設置行高為30,垂直居中,水平居中、字體大小為18,寬度自適應Sub with語句()With Sheets(1).Range("a1:f11") .Borders.ColorIndex
  • 利用VBA代碼如何打開任意程序
    今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。今日分享的是NO.242-243,內容是:NO. 242:VBA代碼使用Shell函數打開記事本程序VBA過程代碼243:VBA數組的定義及創建VBA過程代碼242:VBA代碼使用Shell函數打開記事本程序Sub Mynz()Shell "notepad.exe", vbMaximizedFocusEnd Sub
  • Vba第四十三課
    Vba第四十三課關於vba操作工作表、數組、字典等所有的基本功能如果大家仔細去學習、認真敲代碼的話,數據分析應該是入門,當然vba作vb的分支語言,在office的平臺上去運行還是大有作為的,更深層次的功能都相當不錯,而前面的課程所講的功能基本可以定義為少量數據的清洗運算功能,要達到數據分析的水平是遠遠不夠的,比如操作資料庫、自定義函數等等都是數據分析的一些必要技巧
  • 代碼調試的最佳指南
    相信很多開發者對於代碼調試最難的地方是什麼依然雲裡霧裡,而且這不僅僅是初學者需要面臨的問題——本文中就來探討下何為代碼調試的最佳指南。作者 | Julia Evans譯者 | 蘇本如,責編 | 郭芮以下為譯文:昨天我和一些朋友一起調試代碼,他們做程式設計師這一行都不太久,我向他們展示了一些代碼調試技巧。
  • eclipse怎麼調試程序 調試代碼的方法介紹
    1、設置斷點   在程序裡面放置一個斷點,也就是雙擊需要放置斷點的程序左邊的欄目上。   2、調試   (1)點擊"打開透視圖"按鈕,選擇調試透視圖,則打開調試透視圖界面,然後先設置斷點,按調試按鈕則可以調試程序。   (2)或者直接點擊調試按鈕,那個蟲子樣子的按鈕,然後就會進入調試透視圖的界面。前提你需要是要在程序中設置好斷點。
  • 使用VBA代碼給動態數組賦值
    今日內容是和大家分享VBA編程中常用的 「積木」過程代碼,這些內容大多是我的經驗的記錄。來源於我多年的經驗。今日分享的是第NO.220,內容是:動態數組的賦值及回填過程********************************************************************VBA過程代碼220:動態數組的賦值及回填過程Sub MyNZsmarttwo()Dim i%, xrow%, j%, xcount%Dim
  • VBA編程如何輸入輸出字符集,兩函數要掌握
    字符函數Chr():返回一個字符串,其中包含與指定的字符代碼關聯的字符。如何輸入字符,在vba編程過程中是一個基本常識。Asc()返回一個整數值,它表示與字符串中的第一個字母對應的字符代碼。如將字母轉換為數值,可進行如下操作。
  • VBA編程理論學習之談
    有些是解決基本應用需求,也有一些是Excel vba基礎的對象以及屬性功能介紹。總的來說,這個月有一些進展,也有一些心得和知識積累。有幾篇比較不錯的文章持續得到展示和瀏覽,說明這方面還是做到了大多數關注。所以也對這些文件做進一步修改,以完善其功能。同時也查漏一些錯誤存在。
  • word vba 案例
    前期分享了部分word vba案例,今天分享代碼【字體設置】Sub FontSet() Set MyRange = ActiveDocument.Paragraphs(1).Range With MyRange.Font .Bold = True .Name = "黑體" .Size
  • 怎麼在瀏覽器中調試JS代碼?
    作為web開發者,經常需要使用JavaScript來完成一些頁面效果,但是有時候會發現JS沒有效果,這時候就需要在瀏覽器中調試一下JS代碼。下面就來介紹一下主流瀏覽器的調試JS代碼的方法。Chrome瀏覽器按F12或是"設置"--》「工具」--》「開發者工具」,即可打開chrome的調試工具。關於這個工具的用法,請參考「怎麼使用chrome調試工具」。這裡主要講怎麼使用source這個選項來調試JS代碼。下圖source選項的窗口。