
這是系列免費教程《Excel VBA:辦公自動化》,還是老規矩,看看我們走到哪里了。
1.認識VBA:什么是VBA?
2.這些掌握了,你才敢說自己懂VBA
3.VBA變量5年踩坑吐血精華總結
4.VBA中重要的強制申明,誰看誰明白

我們先看上次分享的案例題目。
在「單元格B2」輸入不同的行號,點擊「顯示答案」按鈕,計算「F列」和「H列」對應行號的乘積,并將每個乘積結果加上公共值「單元格B4」的50,將最終結果顯示在相應的單元格。

我們首先回顧一下上述的操作,我們先輸入不同題號,然后點擊宏按鈕,整個過程需要2步。
如果題目只有10道,好像看起來沒什么,但是如果題目有100道、1,000道或是更多的題目呢?
假設題目1,000道,輸入題號+點擊按鈕2連操作你僅需要1s(那得多快的手速),全部操作完就是1,000s,也就約為17分鐘。
如果這個題目的數字再進一步放大呢?我想時間成本就不可想象了。
其實,上述案例是我之前部門同事工作的簡化版,他經常要面對機械重復、枯燥乏味的Excel表格操作。
當然了,如今的他早已擺脫當年的那種苦海~
如果你也想早日擺脫機械重復、枯燥乏味的Excel表格操作苦海,下面2個知識點你一定要掌握。
1.for循環
案例:不輸入題號,僅點擊1次「顯示答案」按鈕,所有題目答案自動計算后顯示在「J列」

我們來分析案例(僅以10道題目來分析)

我們觀察發現:行號是變化的,而且是「正向遞增加1」的規律。
在《變量》分享那篇文章,我們將這些變化的行號數字更改為「變量」,用x代替,程序被精簡為這樣:

那時,我們通過將「單元格B2」的值賦值給「變量x」,然后手動變更「單元格B2」的值,從而變更「變量x」的值,那么能不能讓「變量x」完全自動變化呢?
我們對之前的代碼小小改造一下,僅加2句「For循環結構」代碼即可輕松實現一鍵自動計算上述案例答案:

我們把上述代碼單獨拿出來,分析一下

For循環主要分為3個部分,分別為:
(1)循環開始
標準的書寫格式為「For xxx = xxx To xxx Step xxx」,表示的意思是「變量xxx」的值從xxx變化為xxx,每次增加xxx

(2)循環內容
循環內容根據工作需求書寫相關執行代碼就好,一般都是循環的核心代碼,比如這里的循環內容就是「J列某行單元格」=「F列某行單元格」*「H列某行單元格」+ 50

(3)循環結束
標準的書寫格式為「Next xxx」,表示的意思是「下一個xxx的值」

[備注]
a.「Step」可以取正整數和負整數,也可以省略不寫;當「Step」省略不寫時,值默認為1。
b.「Next xxx」中的「變量 xxx」可以省略不寫,但建議完整書寫,不省略。
我們來模擬一下上述「For循環結構」的程序運行過程:
(1)程序讀取「循環開始」語句「For x = 1 To 10 Step 1」

由于我們使用了「For循環開始」,并且嚴格規定了「變量X」的值從1變為10,每次僅增加1,即:x可以取1 2 3 4 ...10。而本次「x = 1」
(2)讀取第2句「循環內容」代碼「Cells(x, 10) = Cells(x, 6) * Cells(x, 8) + h」

由于第1句代碼確定了「x = 1」,而「Cells(4, 2) = 50」以及「h = Cells(4, 2)」,那么「h = 50」。因此,上述代碼可以翻譯為:「單元格J1」= 「單元格H1」* 「單元格F1」+50。最后,程序到單元格獲取對應的值即可。
(3)讀取第3句「循環結束」代碼「Next x」

此時,「變量 x = 2」
(4)程序回到第1句讀取「循環開始」語句「For x = 1 To 10 Step 1」

我們可以看到此時程序自動返回「循環開始」的地方,由于此時「變量 x = 2」仍然符合「X 從 1 變為 10 每次增加1」這個區間,因此程序接著運行,一直等到「變量 x = 11」的時候,程序會跳出循環,執行下一個語句。
(5)我們看下最終的程序的執行結果

看到這里我們大家也許就明白了,所謂的「For循環結構」就是:
提前設置一定的條件或規則,然后程序自動按照設定的條件或規則自動運行,等到不符合設定的條件或規則時,程序跳出循環結構,執行下一個句子。
那么,我們就可利用「For循環結構」這種符合條件自動運行的特性,根據工作場景書寫相關代碼即可。
2.代碼排版
按照馬斯洛的需求層次理論,我們在達到一定的需求層次之后,會追求更高的需求層次。
那么,這句話應用到VBA代碼領域就是:在我們掌握了一定的代碼基礎之后,我們就希望掌握更強的VBA技能。(這些技能你只要跟著我們的VBA分享課一步一個腳印練習,一定能夠驚嘆自己的超能力)
但真正的VBA高手不僅取決于VBA代碼實力,還取決于自己寫的代碼別人能不能看懂,也包括自己日后能不能看懂。(別問我為什么,因為我經歷過翻譯自己代碼的痛苦)

很明顯,更喜歡右邊的排版,因為它排版干凈、代碼從屬關系清晰,更易閱讀。
所以說,我們不僅要多金(技能強),還要帥氣(排版好)
那么,如何實現上述帥氣的排版呢?很簡單,戳一下就可以
(1)按「Tab」代碼縮進

(2)點選VBE編輯器的縮進按鈕

正所謂:“帥氣”VBA路,從Tab起步
3.總結
(1)For循環結構
提前設置一定的條件或規則,然后程序自動按照設定的條件或規則自動運行,等到不符合設定的條件或規則時,程序跳出循環結構,執行下一個句子。

(2)VBA代碼排版
“帥氣”VBA路,從Tab起步

推薦:人工智能時代的必學技能
