在vba中返回多行数据

时间:2018-04-18 15:39:59

标签: excel-vba vba excel

我有一行如下:

Destination: Part:
04586        06509269AA

我想在另一张包含额外信息的多行相同数据的工作表中查找此数据

Destination: Part:       Package:
04586        06509269AA  656665
04586        06509269AA  213226

并将完整数据返回到新工作表。

我尝试使用数据集的键进行索引匹配,但是由于我在查询中实际拉入了多少行数据而导致excel崩溃,而且我还需要找到一种方法来增加行中的行数实际上有多少行数据的新表。

我可以尝试在VBA中创建此报告的任何想法?

1 个答案:

答案 0 :(得分:0)

如果我理解你正试图获得所有"包价值"基于" Part"和"参数"。我会运行一个带有for循环的while循环,它在匹配时迭代并存储在一个使用reDim Preserve变大的数组中。

example input with output pasted onto G column

Sub example()

Dim rower, destination, packageCount As Integer
Dim Package() As Variant
Dim part As String

destination = 4586
part = "06509269AA"
rower = 0
packageCount = 0

Sheets("Sheet1").Activate
Range("B3").Activate

Do While ActiveCell.Offset(rower) <> ""
    If ActiveCell.Offset(rower) = destination And ActiveCell.Offset(rower, 1) = part Then
        packageCount = packageCount + 1
        ReDim Preserve Package(packageCount + 1)
        Package(packageCount) = ActiveCell.Offset(rower, 2)
    End If
    rower = rower + 1
Loop

Range("g2").Activate

For i = 0 To UBound(Package)
    ActiveCell.Offset(i) = Package(i)
Next i

End Sub