Я просматриваю отфильтрованный набор данных на листе, а затем для каждой записи на этом листе перебираю отфильтрованный диапазон на втором листе в другой книге, чтобы вернуть каждую запись для этого «тега». По какой-то причине кажется, что индекс .Columns () прыгает. На первой итерации он извлекает столбцы (1) и столбцы (2), как и ожидалось, но на следующей итерации Columns (1) фактически возвращает значение, которое должно быть в столбцах (2), на следующей итерации - столбцы (1 ) фактически извлекает значение из столбцов (3) и так далее. Приветствуются любые советы по поводу того, чего мне не хватает.
...
flLastRowOfSheet = flWs.Cells(Rows.Count, "A").End(xlUp).Row 'Find last row of Fitting List sheet
Set flSelectionRange = flWs.Range("$A$1:$E$" & flLastRowOfSheet) 'Set range for filter on Fitting List
'-------------------------------------------------------------------
'---Loop through Settings and get all Tags--------------------------
'-------------------------------------------------------------------
For Each Rng In filRange
If lastRow > filRangeRows Then
Exit For
End If
tag = Rng.Columns(1).Value2
zoneDescription = Rng.Columns(2).Value2
pasteSheet.Range("A" & lastRow).Value2 = tag
InsSum.Range("$P$9") = tag
pasteSheet.Range("B" & lastRow).Value2 = zoneDescription
With flSelectionRange
.AutoFilter Field:=5, Criteria1:=tag, Operator:=xlAnd, Criteria2:="<>"
Set flRange = .Offset(1, 0).SpecialCells(xlCellTypeVisible).Cells
End With
flRangeRowCount = flRange.Rows.Count
pasteSheet.Range("C" & lastRow).Value = flRangeRowCount & " Fitting List Entries Found"
Dim i As Integer
i = 1
For Each flRng In flRange
If flRange.Rows.Count < i Then
Exit For
ElseIf flRangeRowCount >= i Then 'Below is where it is not working as expected
flTag = flRng.Columns(1).Value2
flDescription = flRng.Columns(2).Value2
Debug.Print "Zone Tag = " & tag & " Tag = " & flTag & " Description = " & flDescription
i = i + 1
End If
Next flRng
lastRow = lastRow + 1
Next Rng
... Что я ожидаю увидеть в окне Immediate Window:
Zone Tag = UA000251 Tag = HFF837207 Description = SPG -600 Система охлаждения радиатора Тег зоны = UA000251 Тег = MAJ837239 Описание = SPG-600 ГЕНЕРАТОРНЫЙ ФИЛЬТР СМАЗОЧНОГО МАСЛА Тег резервной зоны = UA000251 Тег = MAJ837237 Описание = ГЛАВНЫЙ ФИЛЬТР СМАЗОЧНОГО МАСЛА ГЕНЕРАТОРА SPG-600
Фактический выход из непосредственного окна:
Тег зоны = UA000251 Тег = HFF837207 Описание = СИСТЕМА ОХЛАЖДЕНИЯ РАДИАТОРА SPG-600 Тег зоны = UA000251 Тег = СИСТЕМА ОХЛАЖДЕНИЯ РАДИАТОРА SPG-600 Описание = 22 Тег зоны = UA000251 Тег = 22 Описание = C Тег зоны = UA000251 Тег = C Описание = UA000251
Заранее благодарим вас за помощь.