我想在两个工作表之间匹配A列,如果有匹配,则应将相应行的B列(sheet1)的数据复制到B列(sheet2)。
表 1:
A列-----------------B列
公司名称 1----------开始日期 1
公司名称 2----------开始日期 2
公司名称 3----------开始日期 3
等。
表 2:
列 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
试试这个(修订版):
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$无论什么(当你向下拖动时,$会保持范围)是您要与之比较的单元格范围......
D1 是您要复制的单元格(如果有匹配项)
向下拖动以完成整个范围...