У меня проблемы с циклическим перемещением по таблицам с использованием ListObjects.
У меня есть цикл For, вложенный в цикл If, вложенный в цикл For Each.Я пытаюсь добавить данные в таблицы на основе значений в соседних столбцах.Я добавил несколько операторов Debug.print, чтобы определить, работает ли все гнездо, но я не могу заставить работать последний цикл For.«Works2» не будет печатать.VBA показывает данные для всех переменных, и я не получаю никаких ошибок.
Public Sub StockDays()
Dim wb As Workbook
Dim ws As Worksheet
Dim loc As Range
Dim tbl As ListObject
Dim quarter, i, countrows As Integer
Set wb = Workbooks("DISTRIBUTOR REWORK DRAFT.xlsm")
Set ws = wb.ActiveSheet
Set loc = ws.Range("A1:C50").Find("Days of Stock") 'I use this further in the program
countrows = ws.ListObjects(1).Range.Rows.count
quarter = DatePart("q", Date)
For Each tbl In ws.ListObjects
Debug.Print "Works"
If Mid(tbl.Name, 5, 1) = quarter Then
For i = 2 To countrows
Debug.Print "Works2"
ws.ListObjects("DFCREDPAR").DataBodyRange.Cells(i, ws.ListObjects("DFCREDPAR").ListColumns("Days of Stock").Index) = ws.ListObjects("DFCREDPAR").Range.Cells(i, 2) / tbl.Range.Cells(i, 3)
Next i
End If
Next tbl
For Each tbl In ws.ListObjects: Debug.Print tbl.Name & vbTab & tbl.HeaderRowRange.Address & vbTab & tbl.DataBodyRange.Address: Next
End Sub
Я проверил все типы данных и считаю, что они все правильные (без несоответствий типов).
Любая помощь будет принята с благодарностью!