我对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中进行此替换?
答案 0 :(得分:0)
Sub Worksheet_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
来源: