EXCEL之VBA-For Each……Next 語句的使用方法

2020-11-29 事事樂分享

For Each……Next在一個集合或數組中遍歷循環一次,每循環一次都會把當前循環到的對象或元素賦值給變量。

遍歷對象

例如:下面的例子會有B2到E11的區域,查找值大於等於90的單元格,如果找到則計數變量加1,並把其內容字符加粗,字體顏色改為紅色

Sub find90()

Dim a As Integer, X As Range

a = 0

For Each X In Range("B2:E11")

If X.value >= 90 Then

a = a + 1

X.Font.Bold = True

X.Font.Color = RGB(255, 0, 0)

End If

Next

MsgBox "共有" & a & "個符合條件的數據,已為其設置了背景色以便區分"

End Sub

運行結果

遍歷數組

下面的代碼定義一個26個元素的數組,數組下標是從0開始的,0-25個就是26個元素。然後在每個元素中循環一次,並且將大寫字母A到Z的26個字母賦值給數組裡的26個元素,並且把26個元素讀取出來,連成一串字符在消息框中顯示。這裡是通過Chr轉換函數將相應的數值轉為對應的字母。

Sub AtoZ()

Dim a(25) As String, i As Integer, t As String

t = ""

For i = 0 To 25

a(i) = Chr(i + 65)

t = t & a(i)

Next

MsgBox t

End Sub

上面代碼運行結果

下面代碼查找當前工作薄共有多少個工作表,其中已經使用的工作表有多少個

Sub countusedsheet()

ActiveSheet.usedrange.SpecialCells(11).Select

a = Sheets.Count '統計當前工作薄有幾個工作表

For i = 1 To a

r = Sheets(1).usedrange.SpecialCells(11).Row

'已使用區域最後一行

c = Sheets(1).usedrange.SpecialCells(11).Column

'已使用區域最後一列

If r > 1 Or c > 1 Then

X = X + 1

End If

Next

MsgBox "當前工作薄共有" & a & "個工作表,其中" & X & "個工作表已使用"

End Sub

中途退出For Each......next循環

可以使用Exit For 或 goto 語句退出

例子:

Sub findN()

Dim X As Range,a as string

For Each X In Range("B2:E11")

If X.value = "李珊" Then

X.Font.Bold = True

X.Font.Color = RGB(255, 0, 0)

a=x.address(flass,flass)

MsgBox "已找到第一個符合條件的數據,它在" & a & "單元格" & chr(13) & "現在退出查找,後面符合條件的單元格D10也不會被找到。"

exit for

End If

Next

End Sub

運行結果

相關焦點

  • VBA中的循環語句
    ,結束值指的是循環結束的值,實質上就是counter值的一個判斷,如果counter值在起始值和結束值之間,那麼進入循環語句,然後counter值每運行到next語句後會自動加一個步長值,直至counter值超出了初始值到結束值這個範圍,循環才會結束。
  • EXCEL之VBA應用實例-FIND查找和FindNext繼續查找的使用方法
    Sub Find查找方法()Dim findValue As RangeDim a, bb = 0Set findValue = ActiveSheet.usedrange.Find(what:="黃"
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數宏表函數是早期低版本excel的產物
  • R語言中的next語句和break語句的具體用法
    我們知道在像C語言,C#語言,Java語言中可以分別使用continue語句和break語句來實現,那麼在R語言中也是這樣的嗎?回答是不完全是這樣的。在R語言中要終止某一次循環要使用next來實現,要終止整個循環就可以使用break語句來實現。
  • excel編程系列基礎:常用語句之循環語句的邏輯理解
    今天是第三篇VBA實戰入門教程,我們將給大家帶來VBA中最常見語句之一,循環語句。典型的循環語句有4種,分別是Do While…Loop循環、Do…Loop Until循環、For…Next循環、For Each x In y … Next循環。查看循環邏輯圖可以更快理解循環語句。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • 工作中為什麼有必要學點VBA
    02VBA的應用可能有人會說了,excel有非常豐富的內置函數庫,能滿足大多數場景的需要,VBA就沒必要學了吧,也對也不對,濤哥有個專輯專門介紹這些常用函數的使用方法,確實,對於簡單的場景或者說對於大多數對excel了解不深的人來說
  • 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中的If-Then-Else語句
    今日的內容是「VBA之EXCEL應用」的第六章「條件判斷語句(If...Then...Else)在VBA中的利用」。這套教程從簡單的錄製宏開始講解,一直到窗體的搭建,內容豐富,案例眾多。大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。
  • 3種根據單元格填充色求和與計數方法,再也不用一個一個的計算了
    的前身,但是隨著vba的出現,宏表函數已經被逐漸的取代,但是現在仍然可以使用,只不過只能通過定義名稱來使用在這裡我們需要用到的宏表函數是GET.CELL,他的參數一共有兩個第一參數:type_num,單元格中的信息,會根據輸入的代碼返回不同的單元的信息第二參數: Reference
  • 淺議yield 語句
    python 中最富爭議的語句就是 yield 語句,yield 語句提供了用戶構造實現生成器(generator)的可能,但由於其語法和函數很相像,所以容易誤用和誤解:  讓我們來看下面一段經典的 yield 語句使用:  1. yield
  • 數據科學養成記 之 R語言基礎(3)——excel數據導入
    我們常見的excel導入方法為以下3種:1.將Excel轉存為csv格式文件,讀csv文件。('exercise1.xls')#32位作業系統使用odbcConnectExcel函數sqlTable(b)根據需求讀取sheet1b <- sqlFetch(b, 'Sheet1$')odbcClose
  • excel表格輕鬆搞定!
    在工作中,有時候會遇到把阿拉伯數字轉轉換為中文簡體,中文繁體,如果數據很多,而且一時找不到轉換的軟體,試試電腦上的excel吧,一個函數即可搞定。方法一:單元格格式。方法二:函數法。此處轉換用到的函數為numberstring函數,這個函數和常用的時間函數datedif一樣,都是excel中的隱藏函數,運用時在函數編輯欄完整輸入函數即可。numberstring函數有兩個參數,第一個參數為要轉換的單元格,第二個參數有3種,1表示把阿拉伯數字轉化為慣用的中文大寫,2表示把阿拉伯數字轉化為中文繁體字,3表示把阿拉伯數字轉化為對應的中文大寫。
  • With語句,提高VBA代碼運行速度的方案
    今日分享的是NO.205-NO.205,內容是:NO. 205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度VBA過程代碼205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度Sub mynz ()
  • Filter函數和ReDim語句講解,以及VBA中利用動態數組排重的方法一
    大家好,我們今日繼續講解VBA代碼解決方案的第61講內容:在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法。在上一講中我們講了使用數組函數將單元格中的文本進行分隔後寫入到工作表中的方法,那麼問題來了,如果文本中含有大量的重複值,在寫入時也會將重複值寫入到工作表中,此時,如果我們要剔除重複值,該怎麼辦?用VBA的方法該如何做到呢?我在這講和下一講中將解答這個問題,並提供給讀者一個可以測試的實例。今日先講這個內容要用到的知識點。
  • Excel小技巧:使用VBA,10秒鐘搞定拆分工作表(內附代碼)
    前面我們發布過將多個工作簿中的工作表合併到一個工作表簿中,就有網友提了一個問題,如何講一個工作表拆分成多個工作表,其實實現的方法很多,如果數據少的話,我們直接採用篩選後複製粘貼就可以了,如果數據比較多,或者是日常工作的話,每天這樣複製粘貼,就很麻煩~,或者我們使用透視表也可以。。
  • excel宏:Excel表格中的宏怎麼使用
    今天來聊聊一篇關於excel宏:Excel表格中的宏怎麼使用的文章,現在就為大家來簡單介紹下excel宏:Excel表格中的宏怎麼使用,希望對各位小夥伴們有所幫助。
  • 掌握這7條excel函數,自動化生成數據周報上篇
    excel的二八原則曾經在面試時候被問到VLOOKUP和HLOOKUP有什麼區別,我回答的是前者是以列匹配,後者是以行匹配。面試完我一個勁兒後悔沒有回答好,對這個函數不熟悉,回答太簡單。諷刺的是已經過去好幾年,我卻一次未用到過HLOOKUP。所以真的沒必要抱著一本excel大全在那挨個學函數,浪費時間。
  • VBA中重複操作的神器,Do……Loop循環語句,你值得擁有它
    相反如果條件為真,循環裡面的語句則會被一條一條地執行,直到遇到Loop語句。Loop語句會告訴VBA重複這個過程,只要Do語句裡的條件為真的話,他就會一直執行下去。好啦,已經說了如此之多,我們現在來看看是如何在Excel中間使用Do…While循環語句。相信我們在前面的章節裡,已經學習了如何根據一個單元格的內容來判斷。
  • Excel Choose函數的使用方法,含與Match與VLookUp配合使用的實例
    除可以用單個數字作索引號外,還可以用數組;用數組作索引號常常在和Match函數或VLookUp函數配合使用時出現,以下列舉了 Excel Choose函數使用方法的6大實例,其中就包含有和Match函數或VLookUp函數配合使用的實例,實例操作所用版本均為 Excel 2016。
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    No.1在vba編程中,數組應用是一個十分有用的方法。如何把數據表作為數組進行處理,是編程過程中的一個重要技能。學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。No.2上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。