2017-04-25 165 views
0

我是VBA的新手。VBA - 使用索引/匹配复制多列以适应多个条件

我有两张床单。第一个是旧信息过期的大型表单,第二个包含第一个更新数据的子集。

以下是每个工作表的(截断)示例。

**Old Large Sheet** 

Year Month Region Data1 Data2 CalculatedData1 CalculatedData2 
2016 1  1  X1 Y1 X1    X1/Y1 
2016 2  1  X2 Y2 X1+X2   X2/Y2 
2016 3  1  X3 Y3 X1+X2+X3  X3/Y3 
... 
2017 1  1  X13 Y13 X13    X13/Y13 
... 
2025 12 30  XXX YYY ... 

而新的表。

**New Sheet** 
Year Month Region Data1 Data2 
2017 1  1  X13' Y13' 
2017 2  1  X14' Y13' 
2017 3  1  X15' Y15' 
2017 4  1  X16' Y16' 

基本上,我想从基于索引/匹配的三个第一柱的新片材的值替换在旧片“数据”列中。

在Excel中,这将意味着过滤特定时段/区域和写入数据式的阵列式这将是象

{=INDEX('NewSheet'!D2:D1000;MATCH($A2&$B2&$C2;_ 
      'NewSheet'!$A$2:$A$1000&$B$2:$B$1000&$C$2:$C$1000;0))} 

并将其复制为每个“数据”列和每过滤行。

我的问题是:我怎样才能以相当自动化的方式在VBA中进行这种替换?

回答