Vba 在ListObject中循环
我在使用ListObjects循环表时遇到问题 我在If循环中嵌套了For循环,在For-Each循环中嵌套了If循环。我试图根据相邻列中的值向表中添加数据。我已经抛出了一些Debug.print语句来确定整个嵌套是否工作,但我无法让最后一个For循环运行。“Works2”将不打印。VBA正在显示所有变量的数据,我没有收到任何错误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
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循环。有时,一双新的眼睛是非常有帮助的!非常感谢。