2017-04-25 10 views
0

VBAの新機能です。VBA - インデックス/マッチを使用して複数の条件を使用して複数の列をコピーする

私は2枚あります。最初のものは古くなった情報を持つ古い大きなシートで、もう1つは更新されたデータを持つ最初のもののサブセットを含んでいます。

ここには、各シートの(切り捨てられた)例があります。

**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' 

基本的に、私は3つの第1列のインデックス/一致に基づいて新しいシートから値を持つ古いシートの「データ」の列を交換したいと思います。

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

Hm、vbaトリガーについて知っていますか?例えば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 

出典:

https://support.microsoft.com/en-us/help/213612/how-to-run-a-macro-when-certain-cells-change-in-excel

関連する問題