filteredStartRow = A2 detailsStartRow = D2
※i = x(获取filteredItemCount的值,例如:2, 3, 2)
※j = y(获取detailsItemCount的值,例如:4, 5, 3)
我被卡住了,我可以多有效地移动到第二个 filtersStartRow (A4) 和 detailsStartRow (D10)。并继续直到最后一个过滤器和详细信息 StartRow。
我在做什么:获取 ItemCount(例如:x,y)以在过滤器和详细信息项中运行嵌套循环。因为我已经知道过滤器和详细信息的下一个项目计数,所以我只需要更改我的 NEXT filterStartRow 和 detailsStartRow。如何使用 (i, j) 的任何动态设置以及设置 STARTROW 来构建我的循环?任何人都可以请帮助代码。
这是我的代码,它仅适用于第一个循环(绿色边框)。
startRow = 2
startRow1 = 2
nextDetailsRow = 0
For i = 1 To noOfFilteredItem (e.g:3)
mapFilteredItemCount = Worksheets("Sheet1").Cells(startRow, 3).Value
detailsItemCount = Worksheets("Sheet1").Cells(startRow1, 6).Value
With ThisWorkbook.Worksheets("Sheet1")
For m = 1 To mapFilteredItemCount
For n = 1 To detailsItemCount
If .Cells((startRow + m) - 1, 2) = .Cells((startRow1 + n) - 1, 5) Then
If IsEmpty(.Cells((startRow1 + n) - 1, 8).Value) = True Then
.Cells((startRow1 + n) - 1, 8).Value = "Deliver"
nextDetailsRow = nextDetailsRow + startRow + n
Else
GoTo NextIteration
End If
End If
NextIteration:
Next n
Next m
End With
Next i
我的问题是:
- 一旦循环 (m, n) 完成,我需要动态更新 STARTROW 和 STARTROW1。
- 如何分配 STARTROW 和 STARTROW1 变量以接收下一个起始行值。
我的逻辑:
- 我想将所有的 STARTROW 和 STARTROW1 数字保存到一个数组中,然后从数组中获取值。
例如:
filteredItemRowArray() = 2, 4, 7 (※过滤项的起始行号)
detailsItemRowArray() = 2, 6, 11 (※详情项的起始行号)
但我无法安排这个数组来保留行号值。
任何人都可以帮助我,我真的很欣赏你的编程智能。如果您有任何疑问或理解问题,请告诉我。非常感谢你。
我会尝试同样的想法。循环遍历包含数字的数组。请尝试以下代码:
Sub Outer_Loop()
Dim StartrowArr, Startrow1Arr, I As Integer
Dim Startrow As Long, Startrow1 As Long
StartrowArr = Array(2, 4, 7)
Startrow1Arr = Array(2, 6, 11)
For I = LBound(StartrowArr) To UBound(StartrowArr)
Startrow = StartrowArr(I)
Startrow1 = Startrow1Arr(I)
Debug.Print "Loop " & I, "Startrow: " & Startrow, "Startrow1: " & Startrow1
' your code
Next I
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句