編者按:大家好!今天是第三節VBA實用入門課,我們將為您帶來VBA最常見的語句之壹,循環語句。有四種典型的循環語句,分別是Do While…Loop loop、Do…Loop Until loop、For…Next loop和For y…Next Loop中的每個x。看循環邏輯圖,更快理解循環語句。了解更多技巧,請收藏博客教育excel圖文教程。
編者按:大家好!今天是第三節VBA實用入門課,我們將為您帶來VBA最常見的語句之壹,循環語句。有四種典型的循環語句,分別是Do While…Loop loop、Do…Loop Until loop、For…Next loop和For y…Next Loop中的每個x。看循環邏輯圖,更快理解循環語句。了解更多技巧,請收藏博客教育excel圖文教程。
編者按:大家好!今天是第三節VBA實用入門課,我們將為您帶來VBA最常見的語句之壹,循環語句。有四種典型的循環語句,分別是Do While…Loop loop、Do…Loop Until loop、For…Next loop和For y…Next Loop中的每個x。看循環邏輯圖,更快理解循環語句。了解更多技巧,請收藏博客教育excel圖文教程。
序
讀完我們的前兩個VBA實用入門教程,妳有興趣繼續學習嗎?也許學生的興趣早就有了,只是沒有找到入門的方法。當然,前兩篇文章並不是入門之道,充其量是壹道“開胃菜”。跟上作者E圖表達的步伐,我不會讓妳成為像“啞巴英語”壹樣的“手殘VBA”。那麽如果說前兩篇文章讓妳了解了壹些cell對象的屬性,那麽在這個階段,妳需要知道兩個寫代碼時無法回避且非常重要的“語句”!
壹.循環聲明
1.分配給壹個單元
上壹篇文章,同學們要掌握壹個知識點,就是給單元格賦值的過程。什麽是賦值?是壹個表達式的結果,輸入到壹個單元格對象(某個區域)的VALUE屬性中,如下面這樣寫:
子賦值1()
紙張(“A”)。[A1] =張(“A”)。【A1】。排
末端接頭
代碼解析
第1行:將工作表A的單元格A1的行屬性賦給工作表A的單元格A1..
2.為10單元格賦值
我們來增加壹些要求的難度,給單元格A1賦值:A10。如果妳能理解上面的代碼,那就很簡單了。寫10行代碼就行了。
子作業2()
帶表(“A”)
。[A1] =。【A1】。排
。[A2] =。[A2]。排
。[A3] =。[A3]。排
。[A4] =。[A4]。排
。[A5] =。[A5]。排
。[A6] =。[A6]。排
。[A7] =。[A7]。排
。[A8] =。【A8】。排
。[A9] =。[A9]。排
。[A10] =。[A10]。排
以…結尾
末端接頭
除了多寫內容沒問題,還可以用復制粘貼的方式更改單元格地址,不是很麻煩。
3.為100個單元格賦值。否,玩大壹點,給10W單元格賦值。
同學們,妳們準備寫10W命令行嗎?直接,給妳答案,代碼如下:
子作業3()
對於i = 1至100000
帶表(“A”)
。單元格(I,1) =。單元格(I,1)。排
以…結尾
接下來我
末端接頭
Line1:設置循環變量I,循環範圍從1到100000;
line 2:Sheets(“A”)作為同壹系列對象的上下級關系;
第3行:在操作單(" A ")中,從單元格(1,1),單元格(2,1),...,單元格(I,1),...,到單元格(1)。
第4行:以語句結束;
第5行:循環語句的結束語句。滿足循環條件時,繼續循環,不滿足條件時,跳出循環。
上面是用loop語句寫的給10W單元格賦值的代碼,加上WITH語句,就是五行命令行。妳不需要寫那麽多命令代碼,使用循環代碼就可以輕松操作妳需要的數據源,這是循環語句最根本的優勢。
4.圓形邏輯圖
作者的E圖顯示,循環的過程用上面兩種格式概括。主要區別是藍色進程先考慮循環條件,滿足時執行語句,不滿足時跳出循環;橙色的流程是先執行語句,然後判斷循環變量是否滿足條件。如果不是,它循環執行語句並再次運行,否則它跳出循環。了解更多技巧,請收藏博客教育excel圖文教程。
5.循環句的兩種語法形式
EXCEL VBA中有兩種循環語句。簡單來說,壹個是Do循環,壹個是For循環,它們分別有兩種格式。
1) do while...loop循環語句,例如:
要求:找到工作表“Do Loop”中A列的第壹個空單元格。
子窗口循環()
i = 1
帶表(“Do循環”)
做的時候。Cells(i,1)& lt;& gt""
i = i + 1
環
MsgBox的第壹個空單元格“是”&;。單元格(I,1)。地址
以…結尾
末端接頭
代碼解析
Line1:確定循環變量的初始值為1;
Line2:使用Sheets(“Do Loop”)作為同壹系列對象的父子關系;
第3行:循環語句的初始語句,While(循環條件)表示單元格不為空;
第4行:當單元格不為空時,滿足循環條件,執行語句i=i+1。這段代碼相當重要,俗稱“counter”,尤其是在循環語句中,有定時增減變量的作用。再次使用變量時,對象的引用會有規律的變化。
第5行:循環語句的結束語句,返回第3行判斷新的I值。當單元格為空時,不滿足循環條件,跳過循環;
第6行:msgbox顯示指定的描述性文本,即“第壹個空單元格是…”。
Do While…Loop的循環結構符合循環流程圖中的藍色流程,屬於先判斷條件再運行的結構。
2)Do…Loop Until循環語句,例如:
要求:以上例為題,用Until找到第壹個空單元格。
子循環()
i = 1
帶表(“Do循環”)
做
i = i + 1
循環直到。單元格(I,1) = " "
MsgBox的第壹個空單元格“是”&;。單元格(I,1)。地址
以…結尾
末端接頭
代碼就不解析了,和while …循環的代碼基本壹樣,只是循環條件的位置和寫法不同。
Do…Loop Until的循環結構滿足循環流程圖中的橙色流程,屬於先執行語句,再判斷條件是否滿足。如果條件不滿足,繼續循環,只有滿足才能跳出循環。
經驗分享
許多初學Excel VBA Do循環的學生會在這兩個循環中遇到困難。如果沒有很好地找到循環條件,就容易導致“死循環”。所以筆者的e圖表達分享給大家:While condition是看“前門”,憑票允許才能進來玩;Until條件是靠“後門”,只有車票允許才能出去。
這樣理解之後,妳看的就是上面的Until代碼了吧:當單元格為= " "時,結束語句,執行下面的Msgbox。
3)For…下壹個循環語句:
通過以上案例,我們可以發現循環語句的壹個規律,就是先有初值,然後逐步累加或減去循環變量,實現對不同對象的操作。For…Next循環也是如此,但它更直接、更簡單。請看壹個示例代碼。
要求1:對a列中的值求和。
Sub For循環()
帶紙張(“For loop”)
a =。[A1040000]。結束(3)。排
對於i = 1到a
b = b +。單元格(I,1)
接下來我
MsgBox "A列的累積值= " &;b
以…結尾
末端接頭
代碼解析
Line1:使用工作表(“For loop”)作為同壹系列對象的父隸屬關系;
Line2:取單元格A1040000,取上壹行的行號,賦給變量A;
第3行:for循環的初始語句,指定了從1到A的範圍,這是循環範圍;
第4行:設置壹個變量B,B的值等於“B本身的值+單元格的值”。通過循環變量I的變化,遍歷A列的單元格,逐步累加求和。這個碼類似於i=i+1的格式,本身的值加上壹定的值,達到累加的效果;
第5行:for循環的end語句,如果下壹個I值在範圍內,繼續循環,否則跳出循環;
第6行:msgbox顯示指定的描述性文本;
第7行:with語句的結束語句。
要求2:對於這壹列數據,提取偶數行的值並累加。
很簡單,壹知半解就可以了。For循環可以在循環範圍內設置,每次循環的間隔只需要在上面的代碼中增加壹點內容,如下:
循環變量從第二行開始,每壹步是兩個值的距離,所以整個I變量是2,4,6,8,…等等。
與Do循環相比,For循環可以給出非常精確的開始和結束範圍,這對我們遍歷工作表和單元格非常有用,也是常用的。也屬於藍圖流程,先判斷後執行。
4)對於y中的每個x…下壹個循環語句:
嚴格來說,這句話還是屬於For…Next的結構,是另壹種表達形式。以後說到詞典,還會遇到這種結構。今天,我們先來看看,比如:
要求:對選定的單元格區域求和。
Sub Foreach循環()
尺寸rg作為範圍
對於選擇中的每個rg
a = a + rg。價值
然後
MsgBox "所選區域的總和= " &;a
末端接頭
代碼解析
Line1:定義壹個rg變量,這是壹個單元格變量;(我們後面會具體講定義變量。)
第二行:用英語逐字翻譯這段代碼。在選擇(選定的單元格範圍)中,循環每個rg單元格變量;
第3行:累加到變量a;
第4行:for循環的結束語句。如果下壹個rg值在選擇範圍內,則繼續循環,否則跳出循環;
第5行:msgbox顯示指定的描述性文本。
這個結構的For循環主要是指遍歷指定的“對象集”中的每個單獨的對象,這也屬於藍色圖形過程,執行前判斷,如果在“對象集”中,則執行語句,否則跳出循環。
今天的教程向妳介紹VBA中最常見也是最重要的語句之壹,循環語句。只有學會了循環,才能說明學生是“在路上”的,否則就真的只是“斷手VBA”,會讀書寫字了。對於循環,初學者需要壹個過程去理解,但妳要知道,還有很多變量等著我們去總結,去填補真實戰鬥中的漏洞。找個時間趕緊試試,祝同學們早日寫出自己的代碼。
下壹篇文章將繼續與妳分享VBA的另壹個重要聲明,判決聲明。了解更多技巧,請收藏博客教育excel圖文教程。
Copyright 2024 成語大全網