天天看點

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

作者:滿天飛舞小雪花

上一章給大家分享了一下Do While循環結構的含義,以及該怎麼使用,今天這一章就給大家分享一下VBA基本文法的For Each…Next的特點,使用說明等。

首先看一下For Each結構的具體含義:

For Each 元素變量 in 組合(可以是集合或者數組)

要執行的語句快

Exit For

要執行的語句快

Next 元素變量

下面就具體解釋一下請看截圖:

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

注意:For Each…..Next 要比其他循環結構靈活很多,它不需要什麼循環的判斷條件,特别是循環數組或者是集合的時候。還有一點再循環數組的時候不能去修改數組的值,對已經有值的數組,那也隻能修改元素的屬性(也就是之前舉的例子,改變字型顔色等等)。

先舉一個簡單的例子一起看一下效果:

接下來是一個A列含有很多姓名的單元格(不考慮姓名重複問題)

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

我們需要做的就是使用這個剛學的循環結構去取資料,再輸出到表格中。

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

下面解釋一下代碼:

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

代碼1:

Sub fe()

Dim i As Integer, k As Integer, j As Variant, b As Integer

Dim shuzu() As Variant

b = WorksheetFunction.CountA(Range("A:A"))

ReDim shuzu(1 To b) As Variant

For k = 1 To b

shuzu(k) = Cells(k, 1)

Next

i = 1

For Each j In shuzu

Cells(i, 2) = j

i = i + 1

Next

End Sub

再舉一個常見的執行個體(沒有什麼實際意義,主要是了解一下For each循環結構的使用方法):

使用For Each…..Next 編寫一個程式把1到20的整數輸出到A1到A20單元格中。

VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項
VBA基本文法之For Each Next結構,都有什麼特點以及使用注意事項

代碼2:

Sub sh()

Dim k As Range, j As Integer

j = 1

For Each k In Range("A1:A20")

k.Value = j

j = j + 1

Next

End Sub

注意:這裡面輸出的結果會在你的活動表格的單元格中,(活動就是指你現在打開,正在操作的表格),你可以試試你切換到那個sheet中,結果就輸出到哪裡。

今天先分享到這裡,喜歡的請關注,謝謝!

明天繼續分享

繼續閱讀