2013-05-31 51 views
-1

我不知道是否有一個規則在至極才能知道循環將完成細胞的循環?秩序「爲每個單元」

有沒有辦法改變它?

比方說,我有對多個工作簿多張多個範圍。

回答

5

是的,總是有規則的循環運行。你可以做一些實驗,但我會給你一些信息(據我所知)。

工作簿:訂單是從第一次打開/創建到上次打開/創建的。

工作表/表單:從左至右的順序,因爲您可以在應用程序中看到它們。

單元格(範圍內):它從左到右排第一,然後移到下一行(因爲我們用英文朗讀和寫)。其他

三個例子:

評論在Excel表:基於其中的註釋的位置,在迴路中去與細胞(見上文)的順序單元的地址。

在Word文檔中的註釋:從文檔開始,按出現順序排列。

書籤在MS Word:按字母順序書籤的名稱。


於2013年8月8日

編輯我剛剛找到有關Word文檔中的書籤的順序一些有趣的事情。事實上,有兩個命令:

這個循環:

Dim BM As Bookmark 
    For Each BM In ActiveDocument.Content.Bookmarks 
    Next 

將在書籤中的出場順序迭代中Document Content (Range)

2.雖然這個循環:

Dim BM As Bookmark 
    For Each BM In ActiveDocument.Bookmarks 
    Next 

將基於書籤名稱字母順序迭代。


當使用For...Next循環,可以使用反向參數Step minus的順序。

做實驗很容易,我可以承認 - 通常知道循環迭代順序很重要。

+0

+1非常好的答案 – 2013-06-01 00:33:55

1

如果您使用索引,而不是爲每個循環,你可以定義「步」告訴它如何通過索引循環:

Sub test_forloop() 

Dim rng As Range Dim i As Integer Dim strOut As String 

Set rng = Range("A1:A10") 

For i = 1 To rng.Cells.Count Step 1 
    strOut = strOut & rng.Cells(i).Address Next 

MsgBox strOut 

strOut = "" 
' Now do it stepping backwards 

For i = rng.Cells.Count To 1 Step -1 
    strOut = strOut & rng.Cells(i).Address Next 

MsgBox strOut 

End Sub 

這將工作一樣牀單和工作簿,如果他們是成員同一系列(使用Worksheets(<index>))。