Vba “循环中单元格的顺序”;对于每个单元格“;
我想知道是否有一个规则,知道循环将以何种顺序进行 有办法改变吗Vba “循环中单元格的顺序”;对于每个单元格“;,vba,excel,foreach,ms-word,Vba,Excel,Foreach,Ms Word,我想知道是否有一个规则,知道循环将以何种顺序进行 有办法改变吗 假设我在多个工作簿的多个工作表上有多个范围 如果使用索引而不是每个循环,可以定义“步骤”,告诉它如何循环索引: 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 &am
假设我在多个工作簿的多个工作表上有多个范围 如果使用索引而不是每个循环,可以定义“步骤”,告诉它如何循环索引:
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()
),这同样适用于它们。是的,循环总是有规则运行的。你可以做一些实验,但我会给你一些信息(据我记忆所及)
工作簿:顺序是从第一次打开/创建到最后一次打开/创建
工作表/工作表:从左到右的顺序,您可以在应用程序中看到它们
单元格(在范围内):它从左到右排在第一行,然后移动到下一行(正如我们用英语读写的那样)
其他三个例子:
Excel工作表中的注释:根据注释所在单元格的地址,按照循环与单元格的顺序排列(见上文)
Word文档中的注释:从文档开始,按出现顺序排列
MS Word中的书签:按书签名称的字母顺序排列
2013年8月8日编辑 我刚刚发现了一些关于Word文档中书签顺序的有趣信息。事实上,有两个命令: 1.此循环:
Dim BM As Bookmark
For Each BM In ActiveDocument.Content.Bookmarks
Next
将按文档内容(范围)
2.此循环时:
Dim BM As Bookmark
For Each BM In ActiveDocument.Bookmarks
Next
将根据书签名称按字母顺序进行迭代
当使用
For…Next
循环时,可以使用步骤减号
参数反转顺序
做实验很容易,我可以承认——知道循环迭代顺序非常重要