我想比较两个工作表中的数据,如果匹配则复制一个单元格

时间:2015-04-14 08:06:56

标签: excel vba compare

我希望在两个工作表之间匹配A列,如果匹配,则应将相应行的B列(sheet1)的数据复制到B列(sheet2)。

表1:

COLUMN A ----------------- COLUMN B

公司名称1 ---------- Startdate 1

公司名称2 ---------- Startdate 2

公司名称3 ---------- Startdate 3

表2:

COLUMN A

公司名称1

公司名称1

公司名称1

公司名称2

公司名称2

我需要为具有不同行数的多个文件执行此操作。

我尝试的方式如下,但最终只将数据复制到C3。谁知道我做错了什么?

Sub Startdatum()

cntcomp = ActiveWorkbook.Worksheets("Component").Range("A2", Worksheets("Component").Range("A2").End(xlDown)).Rows.Count
cntbedrijf = ActiveWorkbook.Worksheets("Bedrijf").Range("A2", Worksheets("Bedrijf").Range("A2").End(xlDown)).Rows.Count

For i = 2 To cntcomp

For j = 2 To cntbedrijf

    If ActiveWorkbook.Worksheets("Component").Cells(1, i).Value = ActiveWorkbook.Worksheets("Bedrijf").Cells(1, j).Value Then

        ActiveWorkbook.Worksheets("Component").Cells(3, i).Value = ActiveWorkbook.Worksheets("Bedrijf").Cells(2, j).Value

    End If

Next j

Next i

End Sub

1 个答案:

答案 0 :(得分:0)

试试这个(修订版):

Function Startdatum(cell As Variant, cellrange As range, Optional celltarget As Variant) As String
For Each j In cellrange
    If j = cell Then Startdatum = IIf(IsMissing(celltarget), j, celltarget): Exit Function
Next
End Function

将它放入新模块,然后你可以进入第一个单元格= Startdatum(A1,$ C $ 1:$ C $ 7,D1)

  • A1是您要比较的单元格。

  • $ C $ 1:$ C $无论什么(当您将其向下拖动时,$' s保持范围)是您想要将其与...进行比较的单元格范围。

    < / LI>
  • 如果匹配,则D1是您要复制的单元格

向下拖动以完成整个范围...