如何对 excel vba 中的 Matrix 单元格使用嵌套循环

How to use nested loop for a Matrix cell in excel vba

Current Excel Sheet Structure

filteredStartRow = A2 detailsS​​tartRow = D2

※i = x(获取filteredItemCount的值,例如:2, 3, 2)
※j = y(获取detailsItemCount的值,例如:4, 5, 3)

我被卡住了,我如何有效地移动到第二个 filteredStartRow (A4) 和 detailsS​​tartRow (D10)。并继续直到最后一个过滤器和详细信息 StartRow。

我在做什么: 获取 ItemCount(例如:x、y)到 运行 过滤器和详细信息项中的嵌套循环。 因为我已经知道过滤器和详细信息的下一个项目计数,所以我只需要更改我的 NEXT filterStartRow 和 detailsS​​tartRow。 如何使用 (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