更新excel列中的值取决于其他两列是相等的

我有两张床单。 首先我有几栏,分别是零件号,价格,说明等等。

在第二张表中,我有两列,只有less量零件号码和新的价格。

我需要一种方法来查看表1,并将其与表2的部件号进行比较。 如果他们在那里相同,表格1中的价格需要用表格2中的价格更新。

我已经search,但没有完全覆盖这个或至less,我缺乏了解,因为我是新来的卓越。

希望我能得到一些帮助,谢谢!

这是macros的另一个选项

 Sub update() Dim cell1, cell2, col1, col2 As Range For Each cell1 In Worksheets("Sheet1").Range("A:A") If IsEmpty(cell1.Value) Then Exit For For Each cell2 In Worksheets("Sheet2").Range("A:A") If IsEmpty(cell2.Value) Then Exit For If cell1.Value = cell2.Value Then Worksheets("Sheet1").Cells(cell1.Row, 2) = _ Worksheets("Sheet2").Cells(cell2.Row, 2) End If Next cell2 Next cell1 End Sub 

如果您刚接触编程,请按Alt + F11,按下插入>新build模块,然后复制并粘贴提供的任何代码。

PS。 Excel Hero的选项会消耗less量内存

如果你的第一张纸拥有“主”部分清单,第二张纸拥有一个较小的清单,用于以新的价格更新主清单,那么公式本身并不是解决scheme。

要覆盖主表单上的价格,您将需要一个VBAmacros。

这个macros将进行价格更新,假设柱子A和B用于两张纸上的零件和价格:

 Public Sub UpdatePrices() Dim m1, m2, u1, u2, i&, j& m1 = Sheet1.[a1:index(a:a,counta(a:a))] m2 = Sheet1.[b1:index(b:b,counta(a:a))] u1 = Sheet2.[a1:index(a:a,counta(a:a))] u2 = Sheet2.[b1:index(b:b,counta(a:a))] For j = 1 To UBound(m1) For i = 1 To UBound(u1) If u1(i, 1) = m1(j, 1) Then m2(j, 1) = u2(i, 1) Exit For End If Next Next Sheet1.[b1].Resize(UBound(m2)) = m2 End Sub