vba在sheet2中查找值以适合sheet1中的值

时间:2014-03-20 18:10:51

标签: vba excel-vba excel

我有两个数据范围:

  • DataRange是Sheet1中的范围(类似于A16:F30)

  • HoursDataRange是Sheet2中的范围(类似于A17:G90)。

我需要通过DataRange行循环,从行中获取值,进行一些操作(比如将这些数据添加到seeprate wrokbook中),同时在A列中获取相应的单元格并查找{{}中的所有行1}}(Sheet2)。我不知道如何做最后一件事 - 找到Sheet2中所有匹配的行。

我还不熟悉VBA,所以我读过我可以使用HoursDataRange来过滤AutoFilters或查找或循环。

什么是最佳解决方案?

由于我是程序员,我确实理解循环,但我并不熟悉VBA。

以下是Sheet1的简短示例:

HoursDataRange

这是Sheet2的缩写示例:

NAV Nr. CompName    VAT Nr. Adress  Name    Type
101 Int1    1   Address1    Au  1
103 Int2    2   Address2    De  1
210 Int3    3   Address3    Es  1
212 Int4    4   Address4    Sw  1
310 Int5    5   Address5    Fi  1
345 Int6    6   Address6    Fr  1

因此,您会看到列Key Acc Key NAV Nr. Client EUR 3 Bu STA BU 212 Cl1 25,00 4 Bc STA BC 101 Cl2 25,00 1 Bu STA BU 212 Cl1 25,00 2 Bc STA BC 101 Cl2 25,00 位于两个工作表中,并且存在匹配值。我们可以假设每个Nav Nr.。在Nav Nr中只出现一次,我已经通过Sheet1 DataRange进行循环。但是,在Sheet1Sheet2可以显示0到N次。所以我需要找到所有匹配的行(我需要找到整行而不仅仅是单元格,因为我需要对行中的所有值进行操作,例如,稍后我必须按Nav Nr总结EUR列并且创建PDF,但这可能是后来的工作人员。现在我只想知道如何找到那些匹配的行。

1 个答案:

答案 0 :(得分:0)

你只想完全按照你的描述去做。这是一个例子:

Sub renathy()
Dim Cdata As Range
Dim Chour As Range

For Each Cdata In Sheets("Sheet1").Range("A:A")
    If Cdata <> "" Then
        For Each Chour In Sheets("sheet2").Range("A:A")
            If Cdata = Chour Then
            'do stuff
            End If
        Next
    End If
Next
End Sub