macrosExcel第二个工作表的值由第一个工作表复制

我有2张在同一个Excel中。

首先Excel表单包含以下字段

No Material 10th july 11th july 1 DATUM DCP ESD Black 2 DATUM DCP ESD Blue 

我的第二个工作表包含以下字段

 No Date Material Stock size+Wastage 1 10th july DATUM DCP ESD Black 283.47 2 10th july DATUM DCP ESD Black 661.6 3 11th july DATUM DCP ESD Blue 665.6 4 11th july DATUM DCP ESD Black 50.8 

我想要在第一个工作表中的以下预期结果: –

  No Material 10th july 11th july 1 DATUM DCP ESD Black 945.07 50.8 2 DATUM DCP ESD Blue 665.6 

忘记macros,只需使用数据透视表。
在将更多数据添加到它所从的集合中之后,您总是可以刷新数据透视表。

这是数据透视表的样子: 数据透视表的图片

我如何设置数据透视表中的字段:
我如何设置数据透视表中的字段

这里不需要VBA。 忽略第一个工作表并从第二个工作表创build一个数据透视表。

 Sub summ() With Worksheets("Sheet2") .Range("B2:B" & Range("B" & "65536").End(xlUp).row).Name = "Dates" .Range("C2:C" & Range("C" & "65536").End(xlUp).row).Name = "Materials" .Range("D2:D" & Range("D" & "65536").End(xlUp).row).Name = "Numbers" End With With Worksheets("Sheet1") .Cells(2, 3).FormulaR1C1 = _ "=SUMPRODUCT( (Worksheets("Sheet2")!Dates=R1C) * (Worksheets("Sheet2")!Materials=RC1) * (Worksheets("Sheet2")!Numbers)" .Range(Cells(2, 3).Address).AutoFill _ Destination:=Range(Cells(2, 3).Address, Cells(2, Y)), Type:=xlFillDefault .Range(Cells(2, X).Address).AutoFill _ Destination:=Range(Cells(2, Y).Address, Cells(X, Y)), Type:=xlFillDefault End Sub 

其中“Sheet1”和“Sheet2”分别是第一张和第二张的名称。
其中X是上次使用的行(number_of_materials – 1)。
Y是上次使用的列(number_of_dates – 1)。
既然这不是复杂的任务,我会build议使用公式,而不是一个macros。