VBAで重複のある情報を一意に集計しようとしています。
必要なのは集計結果だけで、セルに計算式は残らないようにしたいです。
現在、次のようにして計算式を一度入れてから文字にしているのですが、
このために2回同じ範囲に書き込みをするのが無駄だと感じています。
VBA
1[データ重複あり!A:A].Copy [a1] 2[a:a].RemoveDuplicates 3Range(Cells(Rows.Count, 1).End(xlUp).Offset(, 4), [b1]) = Array( _ 4 "=VLOOKUP(A1,データ重複あり!A:B,2,FALSE)", _ 5 "=SUMIF(データ重複あり!A:A,A1,データ重複あり!C:C)", _ 6 "=SUMIF(データ重複あり!A:A,A1,データ重複あり!d:d)", _ 7 "=VLOOKUP(A1,データ重複あり!A:e,5,FALSE)" _ 8) 9[a1].CurrentRegion = [a1].CurrentRegion.Value
計算式が1列だけであれば
VBA
1[データ重複あり!A:A].Copy [A1] 2[a:a].RemoveDuplicates 3計算結果 = WorksheetFunction.VLookup(Range([A1], [A1].End(xlDown)), [データ重複あり!A:B], 2, False) 4Range([b1], [A1].End(xlDown).Offset(, 1)) = 計算結果
とできると思うのですが、
複数列だと結果を入れる配列をうまく作れず(大きさを確保しておいてforで入れる?)、
却って遅くなりそうに思っています。
これを解決する良い方法があれば、ご教示願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/21 01:20