|
>途中で行削除されると
最終的にはブック全体の集計をするのなら、行削除とか挿入の操作は、しないことを
前提に考えた方がいいです。それをして各シートの合計計算をしているセル位置が
変わってしまうと、前にレスした "3D計算" が出来なくなってしまうからです。
そもそも、そんな操作をしなくて良いように、というのが出発点だったはずなんですが。
ま、どうしてもそんな操作をしてしまいそうなら、ブッククローズイベントで、
いちいち計算しているセルの行位置をチェックし、もし所定の位置からずれていたら、
そこを消して所定の位置に入力し直す、というコードを入れておいたら良いでしょう。
仮に 1001行目の B:E列 に 各列4:1000行の合計をする数式を入れているとして
Sub Auto_Close()
Dim j As Integer
Dim x As Long
For j = 2 To Worksheets.Count
With Worksheets(j)
x = .Columns(2).SpecialCells(3).Row
If x <> 1001 Then
.Rows(x).ClearContents
.Range("B1001:E1001").Formula = "=SUM(B$4:E$1000)"
End If
End With
Next i
End If
というようなコードを、標準モジュールに入れます。日付シートをループし、各列で
数式の入力されているセルが一つしかない、という前提です。チェックするのは必ず
合計数式のある先頭列としていれば、このように相対参照で一気に同じ数式を
入れられます。
|
|