Vba 在ListObject中循环

Vba 在ListObject中循环,vba,datetime,listobject,Vba,Datetime,Listobject,我在使用ListObjects循环表时遇到问题 我在If循环中嵌套了For循环,在For-Each循环中嵌套了If循环。我试图根据相邻列中的值向表中添加数据。我已经抛出了一些Debug.print语句来确定整个嵌套是否工作,但我无法让最后一个For循环运行。“Works2”将不打印。VBA正在显示所有变量的数据,我没有收到任何错误 Public Sub StockDays() Dim wb As Workbook Dim ws As Worksheet Dim loc As Range Dim

我在使用ListObjects循环表时遇到问题

我在If循环中嵌套了For循环,在For-Each循环中嵌套了If循环。我试图根据相邻列中的值向表中添加数据。我已经抛出了一些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
我已经检查了所有的数据类型,并且相信它们都是正确的(没有类型不匹配)


任何帮助都将不胜感激

该循环中涉及的变量值是什么?当您用F8单步执行时,是否输入过循环?如果没有,哪种情况会失败,为什么?如果Mid(待定名称,5,1)=季度不工作?countrows是否为意外值。。。。。嗨,QHaar,谢谢你的意见。不知何故,我忽略了它们的类型不兼容,并且跳过了If循环。有时,一双新的眼睛是非常有帮助的!非常感谢。