VBA基于另一个工作表更新一个工作表中的Excel列

VBA基于另一个工作表更新一个工作表中的Excel列,excel,vba,Excel,Vba,我有两张工作表。第一个工作表具有项目编号和项目名称。第二个工作表还包含项目编号和项目名称。第一个工作表中的项目名称不正确,需要使用第二个工作表中的项目名称进行更新。因此: Worksheet 1: ProjectId ProjectName 1 Apple 2 Orange 3 Banana Worksheet 2: ProjectId ProjectName 1 Chicken 2

我有两张工作表。第一个工作表具有项目编号和项目名称。第二个工作表还包含项目编号和项目名称。第一个工作表中的项目名称不正确,需要使用第二个工作表中的项目名称进行更新。因此:

Worksheet 1:
ProjectId     ProjectName
1             Apple
2             Orange
3             Banana

Worksheet 2:
ProjectId     ProjectName
1             Chicken
2             Bacon
3             Beef
我需要创建一个宏,该宏只在工作表2中的行中运行,根据项目ID匹配工作表1,然后使用工作表2中的项目名称更新工作表1中的项目名称


如何使用VBA迭代行,匹配ProjectID,并使用工作表2中的ProjectName更新工作表1中的ProjectName?

如Eduardo所述,只需像这样使用VLOOKUP:

  • 将工作表1上ProjectName的内容替换为与此类似的函数(但适用于您的特定工作簿):
=VLOOKUP(A2,sheet2!$A$2:$B$100,2,0)


然后把这个公式往下拉。如果这是最终结果,您可能希望复制然后仅粘贴带有值的特殊数据,以便以后该数据保持不变。

无需使用VBA。使用VLOOKUP很可能应该使查找范围绝对“=VLOOKUP(A2,sheet2!$A$2:$B$100,2,0)嗨,Alex,如果我必须从不同的工作簿中提取数据,我应该使用什么公式?@Rakeshanan您可以在工作簿中选择范围,Excel将在范围之前放置正确的语法。我认为语法是
[绝对路径]工作表\u name!范围