Методы VBA для циклического перебора таблиц в Excel и Access

В VBA существует несколько способов циклического перемещения по таблице, в зависимости от типа таблицы, с которой вы работаете. Я приведу вам несколько примеров:

  1. Цикл по диапазону:

    Dim rng As Range
    Set rng = Worksheets("Sheet1").Range("A1:D10")
    Dim cell As Range
    For Each cell In rng
    ' Do something with each cell
    Debug.Print cell.Value
    Next cell
  2. Цикл по ListObject (таблица Excel):

    Dim tbl As ListObject
    Set tbl = Worksheets("Sheet1").ListObjects("Table1")
    Dim row As ListRow
    For Each row In tbl.ListRows
    ' Do something with each row
    Debug.Print row.Range("ColumnName").Value
    Next row
  3. Цикл по таблице запросов (внешние данные Excel):

    Dim qt As QueryTable
    Set qt = Worksheets("Sheet1").QueryTables(1)
    Dim i As Integer
    For i = 1 To qt.ResultRange.Rows.Count
    ' Do something with each row
    Debug.Print qt.ResultRange.Cells(i, 1).Value
    Next i
  4. Циклический просмотр набора записей (база данных Access):

    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TableName")
    Do Until rs.EOF
    ' Do something with each record
    Debug.Print rs.Fields("FieldName").Value
    rs.MoveNext
    Loop
    rs.Close

Это всего лишь несколько примеров, и подход может варьироваться в зависимости от конкретных требований вашей таблицы. Не забудьте заменить «Sheet1» фактическим именем вашего листа, «Table1» — фактическим именем вашей таблицы, а «ColumnName» — фактическим именем столбца, на который вы хотите ссылаться.