我希望在两个工作表之间匹配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
答案 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是您要复制的单元格
向下拖动以完成整个范围...