从非连续列中查找

时间:2015-05-20 11:03:47

标签: vba find

我是一名新手并试图找出一个优雅的策略,使用VBA从列中特定标准的多个非连续列中查找数据。

示例:查找三列特定条件都匹配的行(逻辑And): A栏,标准1; D栏:标准2,F栏:标准3.

为了举例,我们假设A列=工厂,D列=产品,F列=位置。

这在工作表上非常简单,但在VBA上我很困惑.find,应用程序联合等等。

1 个答案:

答案 0 :(得分:0)

通常使用多个匹配标准,使用这样的循环更容易:

DB = ThisWorkbook.Sheets("DB").Range("Db_Val").Value2
Dim A()
ReDim A(1, 0)

For i = LBound(DB, 1) To UBound(DB, 1)

    If Factory <> DB(i, 1) Then
    Else
        If Product <> DB(i, 4) Then
        Else
            If Location <> DB(i, 6) Then
            Else
                A(0, UBound(A, 2)) = i
                A(1, UBound(A, 2)) = DB(i, 2)
                ReDim Preserve A(UBound(A, 1), UBound(A, 2) + 1)
            End If
        End If
    End If

Next i

If UBound(A, 2) > 0 Then ReDim Preserve A(UBound(A, 1), UBound(A, 2) - 1)