VBA中的循環語句

2021-01-11 VBA語言專家

首先歡迎各位朋友來到我這個平臺,分享成果,福不唐捐,總會有所收穫。無論是EXCEL的操作,還是VBA的操作,都會對大家有所幫助。在每日的講解過程中,對大家哪怕是一點點的收穫,我的時間也就是有意義的。

今日給大家講VBA的循環語句,這個是非常基礎的知識,在VBA的相關內容中我也一直在用,也在不斷的講解,今日專門作為一個專題給大家詳細的說明,中間也有一些有意思的小例子,供大家玩耍。

一 FOR NEXT語句 這種循環是以指定的次數,來重複執行的一組語句

這個結構一般是這樣的:

for counter= start to end [ step 步長值]

[statements]

[exit for]

[statements]

Next counter

具體解釋一下,初始值指的是循環開始的值,結束值指的是循環結束的值,實質上就是counter值的一個判斷,如果counter值在起始值和結束值之間,那麼進入循環語句,然後counter值每運行到next語句後會自動加一個步長值,直至counter值超出了初始值到結束值這個範圍,循環才會結束。這裡要說明一下」step 步長值「往往是省略掉的,省略掉的話,步長取默認值為1。下面將以一段小實例來具體說明這個結構的用法:

實例:在sheet1工作表中一次輸出1到100這些數,顯示在第一列中。

程序:

Sub kk()

Sheets(「sheet1」).select

Dim i As Integer

For i = 1 To 100

Cells(i, 1) = i

Next

End Sub

二 For each …NEXT語句 這種循環主要功能是對一個數組或一個對象進行操作,讓所用元素執行一次循環語句

For each element in group

[statements]

[exit for]

[statements]

Nexr element

具體解釋一下,在for next循環中主要是數值變量,而for each …NEXT這種結構是對象變量。什麼意思呢?each……in指的是在這個對象集合裡面,一次將每一個對象都遍歷一邊。同樣的道理,執行到next後對象自動指到下一個。具體我們來看一下下面的一個實例.

實例:給一個數據區域a1:d5內的所有單元格隨機賦值。

分析:顯然數據區域就是一個對象集合,單元格就是這個集合裡面的對象

程序:

Sub JJ()

Sheets("SHeet1").Select

Dim i As Integer

For Each c In Range("a1:d5")

c.Value = Rnd

Next

End Sub

三 DO loop 語句 在條件為true時,重複執行命令區域

DO WHILE CONDITION

[statements]

[exit do]

[statements]

LOOP

或者:

DO

[statements]

[exit do]

[statements]

LOOP WHILE CONDITION

備註:上面的while 可以用until 代替。

VBA中如果事先不知道將重複多少次循環,只是知道判斷的條件,那麼使用 Do...Loop 語句。Do...Loop 語句會重複執行某段代碼直到條件是 true 或條件變成 true。重複執行代碼的條件是 true,或者使用 While 關鍵字來檢查 Do... Loop 語句的條件。

舉例:我們用Do While語句來解決求1—100的自然數的和的問題:

Sub my_sum()

Dim Lsum As Long, i As Long

i = 1

Do While i <= 100

Lsum = Lsum + i

i = i + 1

Loop

MsgBox "1到100的自然數和為:" & Lsum

End Sub

好了,到這裡把三個循環體都做了講解,上面也講到了三個實例,截圖如下,我都做了測試,可以使用。

今日內容回向:

1 VBA 中三種循環體是什麼?

2 三種循環的區別和聯繫是什麼?

3 如果不知將循環多少次?用哪個循環體?

4 試著把第一個例子改成第三個的模式。

相關焦點

  • VB\VBA\VBS中的if語句以及多重and和or條件用法
    本例所舉例子均在vba代碼窗口中測試過需要的話可以直接複製代碼測試Sub If語句用法()a = Int(Rnd() * 51 + 50) '隨機生成50-100的整數MsgBox;= a And a < 90 Then MsgBox "良好"If 60 <= a And a < 80 Then MsgBox "合格"If a < 60 Then MsgBox "不合格"End Sub單條if語句是不用寫
  • VBA中重複操作的神器,Do……Loop循環語句,你值得擁有它
    在上一個章節中我們已經學習集合的循環和數字的循環,那麼有時候我們並不知道我們要具體循環的次數,這個時候For—Next循環就無能為力啦!其實我們還有一種循環可以勝任這個,他就是我們本文要說的Do----Loop循環,這個循環其實在我們其他的程式語言中均有應用。一起來了解一下他。Do...Loop,顧名思義,他的中文意思就是循環的意思,這個非常好理解。
  • VBA中的If-Then-Else語句
    第一節 If...Then...Else語句大家好,我們再次理解If...Then...Else語句在代碼中的作用,這個語句在VBA代碼中隨處可見,對於VBA而言,條件判斷應用的非常靈活,或者可以說是EXCEL函數的終結者,當你利用VBA上手後,不用再去應用EXCEL函數去解決問題了。
  • Python while循環語句的使用
    本篇介紹Python循環語句的使用,文中主要討論while循環語句,使用while循環語句可以解決程序中需要重複執行的操作,本文講解的每個案例中都配有流程圖和代碼說明。通過本篇的學習,可以達成如下目標。
  • python循環控制語句
    循環語句語句後面一定要跟:冒號for循環:1.for…in range()遍歷格式:for i in range(5);或者for i in range( 0,10,3 );格式中的1列印i是從0開始後列印到5結束
  • Python的range函數與for循環語句
    本篇介紹Python for循環語句和range函數的使用,文中主要討論for循環語句,Python的for循環語句類似於shell或是腳本語言中的foreach循環,可以迭代序列對象。使用range函數可以讓Python的for循環提供類似於傳統的for循環功能。通過本篇的學習,可以達成如下目標。
  • 零基礎學編程python第十課,for……in循環語句與while循環語句
    這節課,帶大家來學習一下【循環】,什麼是循環? 就是把一件事情一遍又一遍重複做多遍。每個人的工作和生活中都充滿了循環,比如你要在操場上跑步5圈鍛鍊身體,比如銷售要一遍又一遍給別人介紹產品,比如高三考生高考前每天三點一線的生活。循環,就意味著重複與無趣。尤其是工作中的重複,無聊重複的工作讓我們感覺到疲憊。
  • excel編程系列基礎:常用語句之循環語句的邏輯理解
    今天是第三篇VBA實戰入門教程,我們將給大家帶來VBA中最常見語句之一,循環語句。典型的循環語句有4種,分別是Do While…Loop循環、Do…Loop Until循環、For…Next循環、For Each x In y … Next循環。查看循環邏輯圖可以更快理解循環語句。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • 工作中為什麼有必要學點VBA
    03找門兒VBA打開VBA窗口的方法有三種,一種是在菜單中調出;第二種方法是在sheet頁點擊滑鼠右鍵調出;第三種方法是通過快捷鍵ALT+F11調出。可通過插入模塊的方式創建,插入模塊完成之後,就可以在模塊中編寫VBA代碼,代碼寫在一個過程(Sub)中。一個過程/子過程是一系列的VBA語句,指示要做什麼工作。程序/過程程序(也叫作過程)是作為一個整體執行的一組語句,它指示Excel如何執行特定的任務。
  • Java小白入門教程(6)——循環語句
    二、循環語句2.1、while循環 while循環的語法結果: while( 循環條件判斷 ){ //循環體 //(循環中變量的變化)}/*執行流程: 首先判斷while之後的小括號裡的循環條件的值:boolean--->true,false 如果是true,表示循環條件成立,那麼執行
  • EXCEL之VBA-For Each……Next 語句的使用方法
    For Each……Next在一個集合或數組中遍歷循環一次,每循環一次都會把當前循環到的對象或元素賦值給變量。然後在每個元素中循環一次,並且將大寫字母A到Z的26個字母賦值給數組裡的26個元素,並且把26個元素讀取出來,連成一串字符在消息框中顯示。這裡是通過Chr轉換函數將相應的數值轉為對應的字母。
  • R語言中的next語句和break語句的具體用法
    在循環結構中我們有時想終止某一次循環,即不再執行這次循環,但還要執行下次循環;還有時我們需要提前結束整個循環,即不再執行循環體中的任何內容了。我們知道在像C語言,C#語言,Java語言中可以分別使用continue語句和break語句來實現,那麼在R語言中也是這樣的嗎?
  • python循環語句用數據做判斷:布爾值和布爾運算
    ,本來會循環5次,但循環到第3次的時候就被break語句打斷,然後結束循環了。這是因為if之下的語句要縮進4個空格(按一次Tab鍵),這裡的if...break又嵌套在while或for循環中,而循環語句本身又要縮進4個空格。這樣一來,break就縮進了【4+4=8】個空格(按兩次Tab鍵)。【注】:Tab鍵和空格鍵不能同時混用。接下來,看個輕鬆點的小說案例,鞏固一下知識。
  • 跟我學java編程—深入理解for語句的嵌套循環
    前面已經介紹了嵌套循環的概念,並通過示例介紹了while循環和do-while循環嵌套的情況。本節介紹for循環結構,for循環也可以嵌套。不僅如此,for循環還可以和其它的循環結構混合嵌套。嵌套循環時,必須將被嵌套的循環語句完整地包含在外層循環的循環體內,下面給出一些循環嵌套的示例。示例1:用「*」輸出一個菱形圖案,圖案如下: 在D盤Java目錄下,新建「ForSample1.java」文件。
  • 數控編程實例循環銑沉孔,條件語句結合G02走圓
    上一篇我們講解了條件語句用於循環開槽的編程,只用了G01直線命令,基本了解了條件語句的應用。下面我們開始深化應用,用圓弧指令結合條件語句來加工那些尺寸較大的沉孔。這類孔尺寸大,不能通過鑽孔的方式完成,我們需要採用銑削的方式通過多刀進給來完成加工。下面我會通過實例給大家分析講解。
  • With語句,提高VBA代碼運行速度的方案
    今日內容是和大家分享VBA編程中常用的 「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。今日分享的是NO.205-NO.205,內容是:NO. 205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度VBA過程代碼205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度Sub mynz ()
  • Python入門第7課,循環結構學習,for語句range函數的3種用法
    第1課,輸出語句及賦值語句。第2課,輸入語句學習。第3課、第4課,學習條件控制if語句。第5課、第6課,階段練習及講解。本節課開始,大陳將帶領學生們一起學習循環語句,計劃用4節課的時間學習for、while語句的使用,同時複習和強化訓練前面學習的變量、賦值、輸入輸出、條件控制等內容。
  • 少兒編程Python第4課-for循環語句(質數判斷)
    Python 中的循環語句有 2 種,上一課我們已經對 while 做了詳細的講解,本節給大家介紹 for 循環,它常用於遍歷字符串、列表、元組、字典、集合等序列類型,逐個獲取序列中的各個元素。for 循環的語法格式如下:for 迭代變量 in 字符串|列表|元組|字典|集合:代碼塊格式中,迭代變量用於存放從序列類型變量中讀取出來的元素,所以一般不會在循環中對迭代變量手動賦值;代碼塊指的是具有相同縮進格式的多行代碼
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    No.1在vba編程中,數組應用是一個十分有用的方法。如何把數據表作為數組進行處理,是編程過程中的一個重要技能。學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。No.2上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。
  • Filter函數和ReDim語句講解,以及VBA中利用動態數組排重的方法一
    大家好,我們今日繼續講解VBA代碼解決方案的第61講內容:在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法。在上一講中我們講了使用數組函數將單元格中的文本進行分隔後寫入到工作表中的方法,那麼問題來了,如果文本中含有大量的重複值,在寫入時也會將重複值寫入到工作表中,此時,如果我們要剔除重複值,該怎麼辦?用VBA的方法該如何做到呢?我在這講和下一講中將解答這個問題,並提供給讀者一個可以測試的實例。今日先講這個內容要用到的知識點。