如何比较两个不同的纸张并将值放在各自的位置?

时间:2015-04-23 21:33:01

标签: excel excel-vba excel-formula vba

我想通过VBA比较两个不同电子表格中的两个不同单元格(一张是基本表格),如果它们是相同的,请将值与它们之间的值进行比较,并将值放在他们各自的立场。

因此,在图片中,A是两张纸中的匹配,因此将30的值复制到基纸上。我处理的电子表格并不像图像那样完美排列。

enter image description here

如果您需要更多说明,请与我们联系。谢谢!

2 个答案:

答案 0 :(得分:3)

正如我所说,在这种情况下你可以使用VLOOKUP 假设您的值都在两个工作表的A列到B列中,而A1和B1都是标题,您可以在单元格B2中尝试以下公式:

  

= VLOOKUP(A2,Sheet 2中!A:B,2,0)

将为您提供上述结果。还假设您的工作表名称是 Sheet1 Sheet2

修改:VBA代码

  1. 使用公式属性

    With Sheets("Sheet1").Range("A2")
        .Formula = "=VLOOKUP(A2,Sheet2!A:B,2,0)"
        .Value = .Value
    End With
    
  2. 使用评估方法

    With Sheets("Sheet1")
        ' 3 ways to use Evaluate method
        .Range("A2").Value = [VLOOKUP(A2,Sheet2!A:B,2,0)] ' Evaluate shortcut
        .Range("A2").Value = .Evaluate("VLOOKUP(A2,Sheet2!A:B,2,0)") ' explicitly
        .Range("A2").Value = Evaluate("VLOOKUP(A2,Sheet2!A:B,2,0)")
    End With
    
  3. Using WorkSheetFunction Method - 已由Tom提供

答案 1 :(得分:2)

您可以在VBA中使用本机工作表功能。只需在工作表函数前加上'Application.WorksheetFunction'。

Application.WorksheetFunction.VLookup(Sheets("Sheet2").Range("A2"), Sheets("Sheet2").Columns("A:B"), 2, False)

希望有所帮助。