vba 修改文本文档 指定行_VBA程序报错,用调试三法宝,bug不存在的
如果把VBA比作一門刀法,那么經(jīng)過前面內(nèi)容的操練,大家已經(jīng)掌握了很多實用的招式。
如果我們在刀法招式的基礎(chǔ)之上,再掌握更多的“磨刀”心法,那么我們的刀用起來才會又好又快。
所以今天主要和大家分享——VBA“磨刀”心法之程序調(diào)試,這也是《Excel VBA:辦公自動化》系列教程的第7節(jié)。
1.認(rèn)識VBA:什么是VBA?
2.這些掌握了,你才敢說自己懂VBA
3.VBA變量5年踩坑吐血精華總結(jié)
4.VBA中重要的強(qiáng)制申明,誰看誰明白
5.VBA掌握循環(huán)結(jié)構(gòu),包你效率提高500倍
6.精通VBA分支結(jié)構(gòu),少寫程序100行
1.什么是程序調(diào)試?
所謂的程序調(diào)試就是:在某個計算機(jī)程序正式投入使用之前,利用一些工具或方法找出程序的漏洞或錯誤,從而保證該程序能夠正常運(yùn)行不出錯。
這樣說,好像仍然不是很明白。我們舉個例子,幫助大家更好消化。
案例:根據(jù)左側(cè)「C列」富豪榜的身價數(shù)據(jù),利用右側(cè)「G列」的判斷標(biāo)準(zhǔn),將判斷后的「富豪尊稱」填入「D列」
在正式分享上述案例之前,先插播一條關(guān)于美化宏按鈕的信息。
有朋友私信問我:猴子,我的那個「宏按鈕」實在是太丑了,我看你設(shè)置的就挺好看,應(yīng)該如何設(shè)置呢?
我覺得這位同學(xué)很有眼光,既然你已經(jīng)發(fā)現(xiàn)了我的審美,那么也不隱藏了,都分享給你們了。
通常情況下,我們都是按照「開發(fā)工具」-「插入」-「表單控件」-「按鈕(窗體控件)」這樣的路徑來繪制我們的「宏按鈕」
這樣繪制的「宏按鈕」,簡直是巨丑無比,哪能入我猴子的法眼?
一對比上圖,很明顯左側(cè)的宏按鈕顏值更高。
就像同樣多金的2個男人,要是我,肯定選擇更帥的那個,不是嗎?
那么,左側(cè)顏值更高的宏按鈕如何設(shè)置呢?
經(jīng)過我多年不眠不休的潛心研究,終于,研制出提升宏按鈕顏值的方案:
首先,我們點(diǎn)選Excel選項卡中的「插入」-「形狀」-「矩形」-「圓角矩形」
然后,直接拖動繪制就好,繪制完成后,Excel會自動多一個「格式」的選項卡。這個選項卡有很多可以自定義這個圓角矩形的操作,比如:顏色、陰影、大小等,大家根據(jù)自己的喜好修改就行。
大家可能還有個疑問,宏按鈕確實好看了,可是怎么讓它關(guān)聯(lián)宏呢?
納尼?這能難倒我萬能的猴子,又經(jīng)過數(shù)十年的研究,天臺式微笑又一次上揚(yáng)在我的嘴角:
其實,和插入VBA那個巨丑無比的「按鈕(窗體控件)」關(guān)聯(lián)宏的操作一樣。
我們「鼠標(biāo)右擊」-「指定宏」,然后從「指定宏」列表選擇自己需要關(guān)聯(lián)的宏即可。
「宏美化」探討完畢,我們繼續(xù)回到上面的案例。
2.VBA程序如何調(diào)試?
我們根據(jù)上述案例的特點(diǎn),并結(jié)合之前For循環(huán)結(jié)構(gòu)和IF分支結(jié)構(gòu)的2個知識點(diǎn),首先將這個案例的代碼寫完(大家肯定都會寫,我就直接展示了)。
運(yùn)行程序,看下結(jié)果
這什么鬼,VBA你這又來侮辱我的智商嗎?
不過,俗話說:調(diào)試用的好,快樂沒煩惱。
因此,我們要用VBA的調(diào)試功能,解除VBA侮辱我們智商的煩惱。
(1)我們首次先打開VBA編輯器
(2)鼠標(biāo)點(diǎn)選「斷點(diǎn)」位置
比如,我們在「For i = 3 To 12」處設(shè)置「斷點(diǎn)」,那么我只需要將鼠標(biāo)挪至每行代碼前的「灰色框體」上,然后輕輕點(diǎn)擊「鼠標(biāo)左鍵」,該位置會出現(xiàn)一個
,并且該句代碼會被批色
,表明「斷點(diǎn)」設(shè)置成功。
所謂「斷點(diǎn)」就是當(dāng)VBA遇到手動設(shè)置的「斷點(diǎn)」,運(yùn)行中的程序?qū)詣油V?#xff0c;并「批黃斷點(diǎn)處代碼」,等待下一步執(zhí)行指令。
套用到這個案例就是,我點(diǎn)擊程序自動運(yùn)行后,當(dāng)程序執(zhí)行到「For i = 3 To 12」這句話時,就會自動停止,且批黃該句代碼,等待我的下一條指令。
(3)「單步調(diào)試」查找錯誤出處
此時為了找到程序程序出錯的位置和原因,我們需要使用「單步調(diào)試」,也就是一句句執(zhí)行,查看每行代碼執(zhí)行情況,更加精準(zhǔn)的排查錯誤。
在VBA編輯器中,依次點(diǎn)選「調(diào)試」-「逐語句」,當(dāng)然最高效的方法是使用快捷鍵「F8」
(4)鼠標(biāo)懸停變量處,自動顯示當(dāng)前變量的值
在代碼過程中,我們將鼠標(biāo)懸停在變量上,VBA編輯器將自動提示當(dāng)前變量的取值,比如:圖中的鼠標(biāo)懸停在「變量i」上,下方會自動顯示當(dāng)前「i = 3」
有些小伙伴,可能說,猴子這個懸停顯示變量值的功能確實很貼心,你講解的這個案例,只有一個變量,懸停很easy。如果我的代碼中有很多個變量,我要查看多個變量的值,那豈不是...想想都頭皮發(fā)麻呢。
一聽就知道,心中有這樣疑問的同學(xué),絕對是“懶中王者”,妥妥的未來科技界領(lǐng)頭羊。
所以,接下來,猴子就再給你介紹個“懶人”VBA調(diào)試法寶。
(4)「添加監(jiān)控」讓VBA調(diào)試更貼心
我們在VBA選項卡依次點(diǎn)選「調(diào)試」-「添加監(jiān)控」
在彈出的「添加監(jiān)控」的表達(dá)式填寫需要監(jiān)視的內(nèi)容即可,然后點(diǎn)擊右側(cè)「確定」按鈕,比如:本案例中需要監(jiān)控「變量i」的值變化,在「表達(dá)式」文本框填入「i」,然后點(diǎn)擊「確定」
然后,我們就可以看到在VBA編輯前底部會生成一個名為「監(jiān)視窗口」的窗體,上面顯示了監(jiān)控的相關(guān)內(nèi)容。比如監(jiān)控的是什么,當(dāng)前監(jiān)控內(nèi)容的值;監(jiān)控內(nèi)容的類型,相關(guān)內(nèi)容大家在實操后,自行探索查看即可
(5)綜合利用上述調(diào)試功能,快速查找代碼出錯原因
當(dāng)我們將上述代碼一行行執(zhí)行,在「i = 9」發(fā)現(xiàn),根據(jù)分類方法「C9 = 934」屬于二級分類,「單元格D9」顯示的應(yīng)該是「富豪」,而不是現(xiàn)在錯誤的「超級富豪」
然后,我們就聚焦在這行代碼上,檢查問題。果然是將單元格的判斷值條件寫錯了,才導(dǎo)致了這次的翻車事件~
然后,修改代碼后,發(fā)現(xiàn)代碼執(zhí)行結(jié)果正常。
3.總結(jié)
以上就是,我們利用VBA代碼調(diào)試的功能,實現(xiàn)了定位錯誤代碼、找出原因錯誤原因、修改錯誤代碼,最后成功執(zhí)行獲得正確結(jié)果的全部流程。
通過這個案例,介紹了VBA三大調(diào)試法寶。
(1)設(shè)置斷點(diǎn)
在需要停止的位置手動設(shè)置「斷點(diǎn)」,程序運(yùn)行此處批色顯示且暫停執(zhí)行,等待下一步指令。
(2)單步調(diào)試
單步調(diào)試實現(xiàn)程序逐句執(zhí)行,快速定位錯誤代碼位置,便于及時排查錯誤。
(3)添加監(jiān)視
實時監(jiān)控需要關(guān)注的變量或內(nèi)容,精準(zhǔn)定位錯誤原因。
同時,還與大家分享了,通過「插入形狀」美化宏按鈕顏值的小技巧,讓你的代碼實用的同時,也增加了爆表的顏值。
畢竟,多金又帥的小哥哥誰不喜歡呢?
推薦:人工智能時代,你必須要學(xué)會這個通用技能
總結(jié)
以上是生活随笔為你收集整理的vba 修改文本文档 指定行_VBA程序报错,用调试三法宝,bug不存在的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蝉联手游榜无压力:《王者荣耀》5月全球吸
- 下一篇: c语言中指数优化,西藏东财中证医药卫生指