Итерации по диапазону могут быть выполнены следующим образом:
Sub IterateRange()
Dim rng As Range, cell As Range
Dim myWs As Worksheet
Set myWs = Application.Worksheets("sheet1")
Set rng = myWs.Range("A1:A6")
For Each cell In rng
MsgBox cell.Value
Next cell
End Sub
Часто итерация может быть более простой, если использовать свойство .Cells рабочего листа, это может выглядеть так:
Sub IterateRange()
Dim i As Long
Dim myWs As Worksheet
Set myWs = Application.Worksheets("Sheet1")
for i=1 to 6
MsgBox myWs.Cells(i, 1)
next i
End Sub
Например, если у вас есть строки, которые вы хотите проверить в диапазоне F3: F73, а результаты подсчета должны быть в диапазоне G3: G73, то искомый цикл может выглядеть примерно так:
Sub Example()
Dim FolderPath As String, path As String, count As Integer, i As Integer
Dim myWs As Worksheet
Set myWs = Application.Worksheets("Sheet1")
For i = 3 To 73
count=0
FolderPath = "C:\Test\PJC"
path = FolderPath & "\*" & myWs.Cells(i, 6) & "*.xml"
Filename = Dir(path)
Do While Filename <> ""
count = count + 1
Filename = Dir()
Loop
myWs.Cells(i, 7) = count
Next i
End Sub
Чтобы цикл автоматически останавливался после последней строки входных строк, просто добавьте
if myWs.Cells(i, 6)="" then
exit for
end if
между строками. Для i = 3 - 73 и count = 0