簡體   English   中英

我想比較兩個工作表中的數據,如果有匹配項,則復制一個單元格

[英]I'd like to compare data in two worksheets and copy a cell if there's a match

我想在兩個工作表之間匹配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是您要復制的單元格(如果存在匹配項)

向下拖動以完成整個范圍...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM