Цикл по ListObject - PullRequest
       16

Цикл по ListObject

0 голосов
/ 06 июня 2018

У меня проблемы с циклическим перемещением по таблицам с использованием 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

Я проверил все типы данных и считаю, что они все правильные (без несоответствий типов).

Любая помощь будет принята с благодарностью!

...