Excel以匹配两个工作表中的值

时间:2014-12-18 05:12:57

标签: excel vba excel-vba excel-formula excel-2010

我需要一个宏/公式来比较工作表中的两个单元格范围,并返回单元格中的相应值。

例如表: 在工作表1(表1)

AGE Description proof
1   8   
2   9   
3   2   
4   9   
5   5   
6   6   
7   0   
8   1   
9   2   
10  1   

Sheet 2中:

dates   1st 2nd 3rd 4th 5th 6th

0         1  1  2   2   3   3
1         2  3  5   6   7   8   
3         4  6  7   8   9   7 
5         6  7  8   9   10  11
7         8  9  10  11  12  13
10       11 12  13  15  16  18
12       13 15  16  18  19  21
15       16 30  31  45  46  60
30       31 33  34  37  38  40

从上面的示例中,如果我的范围需要我的期望(例如,在sheet1年龄:1和描述:8,那么它应该将它与sheet2进行比较并将值粘贴到sheet1校样列中的第6位)。像这些我需要填写所有字段

1 个答案:

答案 0 :(得分:0)

据我了解你的问题,你是

  1. 首先将sheets1.age与sheets2.dates匹配,如果找到匹配则
  2. 您正在将Sheet2.1st中的Sheets1.description搜索到Sheets2.6th,如果您找到了mtach,那么
  3. 您正在选择从sheet2中选择* th(列名称)并将其放入sheets1.proof。
  4. 我发现只有一场比赛,即第一次观察

    以下是代码

    Sub checkNmatch()
    

    计算sheet1和sheet2的lastrow以实现自动化

    lastRowSheet1 = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    lastRowSheet2 = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To (lastRowSheet1 - 1)
     For j = 2 To (lastRowSheet2 - 1)
    

    检查下面的sheet1.age是否与sheets2.dates匹配

       If Worksheets("Sheet1").Cells(i, 1) = Worksheets("Sheet2").Cells(j, 1) Then
    

    如果找到匹配,则在sheet2.1st中搜索Sheets1.description到Sheets2.6th

       For k = 2 To 7
       If Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet2").Cells(j, k) Then
    

    如果找到匹配,则将Sheet2的列名复制到sheet1的证明

          Worksheets("Sheet1").Cells(i, 3) = Worksheets("Sheet2").Cells(1, k)       
       End If
              Next
            End If
         Next
        Next
        End Sub