循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍
這是系列免費(fèi)教程《Excel VBA:辦公自動(dòng)化》,還是老規(guī)矩,看看我們走到哪里了。
1.認(rèn)識(shí)VBA:什么是VBA?
2.這些掌握了,你才敢說自己懂VBA
3.VBA變量5年踩坑吐血精華總結(jié)
4.VBA中重要的強(qiáng)制申明,誰(shuí)看誰(shuí)明白
我們先看上次分享的案例題目。
在「單元格B2」輸入不同的行號(hào),點(diǎn)擊「顯示答案」按鈕,計(jì)算「F列」和「H列」對(duì)應(yīng)行號(hào)的乘積,并將每個(gè)乘積結(jié)果加上公共值「單元格B4」的50,將最終結(jié)果顯示在相應(yīng)的單元格。
我們首先回顧一下上述的操作,我們先輸入不同題號(hào),然后點(diǎn)擊宏按鈕,整個(gè)過程需要2步。
如果題目只有10道,好像看起來(lái)沒什么,但是如果題目有100道、1,000道或是更多的題目呢?
假設(shè)題目1,000道,輸入題號(hào)+點(diǎn)擊按鈕2連操作你僅需要1s(那得多快的手速),全部操作完就是1,000s,也就約為17分鐘。
如果這個(gè)題目的數(shù)字再進(jìn)一步放大呢?我想時(shí)間成本就不可想象了。
其實(shí),上述案例是我之前部門同事工作的簡(jiǎn)化版,他經(jīng)常要面對(duì)機(jī)械重復(fù)、枯燥乏味的Excel表格操作。
當(dāng)然了,如今的他早已擺脫當(dāng)年的那種苦海~
如果你也想早日擺脫機(jī)械重復(fù)、枯燥乏味的Excel表格操作苦海,下面2個(gè)知識(shí)點(diǎn)你一定要掌握。
1.for循環(huán)
案例:不輸入題號(hào),僅點(diǎn)擊1次「顯示答案」按鈕,所有題目答案自動(dòng)計(jì)算后顯示在「J列」
我們來(lái)分析案例(僅以10道題目來(lái)分析)
我們觀察發(fā)現(xiàn):行號(hào)是變化的,而且是「正向遞增加1」的規(guī)律。
在《變量》分享那篇文章,我們將這些變化的行號(hào)數(shù)字更改為「變量」,用x代替,程序被精簡(jiǎn)為這樣:
那時(shí),我們通過將「單元格B2」的值賦值給「變量x」,然后手動(dòng)變更「單元格B2」的值,從而變更「變量x」的值,那么能不能讓「變量x」完全自動(dòng)變化呢?
我們對(duì)之前的代碼小小改造一下,僅加2句「For循環(huán)結(jié)構(gòu)」代碼即可輕松實(shí)現(xiàn)一鍵自動(dòng)計(jì)算上述案例答案:
我們把上述代碼單獨(dú)拿出來(lái),分析一下
For循環(huán)主要分為3個(gè)部分,分別為:
(1)循環(huán)開始
標(biāo)準(zhǔn)的書寫格式為「For xxx = xxx To xxx Step xxx」,表示的意思是「變量xxx」的值從xxx變化為xxx,每次增加xxx
(2)循環(huán)內(nèi)容
循環(huán)內(nèi)容根據(jù)工作需求書寫相關(guān)執(zhí)行代碼就好,一般都是循環(huán)的核心代碼,比如這里的循環(huán)內(nèi)容就是「J列某行單元格」=「F列某行單元格」*「H列某行單元格」+ 50
(3)循環(huán)結(jié)束
標(biāo)準(zhǔn)的書寫格式為「Next xxx」,表示的意思是「下一個(gè)xxx的值」
[備注]
a.「Step」可以取正整數(shù)和負(fù)整數(shù),也可以省略不寫;當(dāng)「Step」省略不寫時(shí),值默認(rèn)為1。
b.「Next xxx」中的「變量 xxx」可以省略不寫,但建議完整書寫,不省略。
我們來(lái)模擬一下上述「For循環(huán)結(jié)構(gòu)」的程序運(yùn)行過程:
(1)程序讀取「循環(huán)開始」語(yǔ)句「For x = 1 To 10 Step 1」
由于我們使用了「For循環(huán)開始」,并且嚴(yán)格規(guī)定了「變量X」的值從1變?yōu)?0,每次僅增加1,即:x可以取1 2 3 4 ...10。而本次「x = 1」
(2)讀取第2句「循環(huán)內(nèi)容」代碼「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。最后,程序到單元格獲取對(duì)應(yīng)的值即可。
(3)讀取第3句「循環(huán)結(jié)束」代碼「Next x」
此時(shí),「變量 x = 2」
(4)程序回到第1句讀取「循環(huán)開始」語(yǔ)句「For x = 1 To 10 Step 1」
我們可以看到此時(shí)程序自動(dòng)返回「循環(huán)開始」的地方,由于此時(shí)「變量 x = 2」仍然符合「X 從 1 變?yōu)?10 每次增加1」這個(gè)區(qū)間,因此程序接著運(yùn)行,一直等到「變量 x = 11」的時(shí)候,程序會(huì)跳出循環(huán),執(zhí)行下一個(gè)語(yǔ)句。
(5)我們看下最終的程序的執(zhí)行結(jié)果
看到這里我們大家也許就明白了,所謂的「For循環(huán)結(jié)構(gòu)」就是:
提前設(shè)置一定的條件或規(guī)則,然后程序自動(dòng)按照設(shè)定的條件或規(guī)則自動(dòng)運(yùn)行,等到不符合設(shè)定的條件或規(guī)則時(shí),程序跳出循環(huán)結(jié)構(gòu),執(zhí)行下一個(gè)句子。
那么,我們就可利用「For循環(huán)結(jié)構(gòu)」這種符合條件自動(dòng)運(yùn)行的特性,根據(jù)工作場(chǎng)景書寫相關(guān)代碼即可。
2.代碼排版
按照馬斯洛的需求層次理論,我們?cè)谶_(dá)到一定的需求層次之后,會(huì)追求更高的需求層次。
那么,這句話應(yīng)用到VBA代碼領(lǐng)域就是:在我們掌握了一定的代碼基礎(chǔ)之后,我們就希望掌握更強(qiáng)的VBA技能。(這些技能你只要跟著我們的VBA分享課一步一個(gè)腳印練習(xí),一定能夠驚嘆自己的超能力)
但真正的VBA高手不僅取決于VBA代碼實(shí)力,還取決于自己寫的代碼別人能不能看懂,也包括自己日后能不能看懂。(別問我為什么,因?yàn)槲医?jīng)歷過翻譯自己代碼的痛苦)
很明顯,更喜歡右邊的排版,因?yàn)樗虐娓蓛簟⒋a從屬關(guān)系清晰,更易閱讀。
所以說,我們不僅要多金(技能強(qiáng)),還要帥氣(排版好)
那么,如何實(shí)現(xiàn)上述帥氣的排版呢?很簡(jiǎn)單,戳一下就可以
(1)按「Tab」代碼縮進(jìn)
(2)點(diǎn)選VBE編輯器的縮進(jìn)按鈕
正所謂:“帥氣”VBA路,從Tab起步
3.總結(jié)
(1)For循環(huán)結(jié)構(gòu)
提前設(shè)置一定的條件或規(guī)則,然后程序自動(dòng)按照設(shè)定的條件或規(guī)則自動(dòng)運(yùn)行,等到不符合設(shè)定的條件或規(guī)則時(shí),程序跳出循環(huán)結(jié)構(gòu),執(zhí)行下一個(gè)句子。
(2)VBA代碼排版
“帥氣”VBA路,從Tab起步
推薦:人工智能時(shí)代的必學(xué)技能
總結(jié)
以上是生活随笔為你收集整理的循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCB封装库的制作
- 下一篇: Luogu2439 [SDOI2005]