Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-使用索引/匹配复制多个列以符合多个条件_Vba_Excel - Fatal编程技术网

VBA-使用索引/匹配复制多个列以符合多个条件

VBA-使用索引/匹配复制多个列以符合多个条件,vba,excel,Vba,Excel,我对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

我对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中进行替换?

嗯,你知道VBA触发器或其他被称为触发器的东西吗?例如,像
子工作表\u Change
。基本上,每次更改单元格时都会运行宏

所以我在想这样的事情:

Sub Worksheet_Change()

   'check cell index
   'check if data is outdated
   'if yes, replace data
   'grab a beer while you revel in a world of automation

end Sub
资料来源: