2016-06-22 7 views
0

現在、私はワークシートにいくつかのSUM関数を設定しています。Excel - forumla範囲外の行を追加する

私の例ではH2:H34を使用します:その範囲内に行を追加すると、合計機能が自動的に調整されます。問題は、新しい行を追加するときに、範囲を下回る(H:33より下)ことです。この場合は、列を強調表示し、必要な範囲に範囲を展開/ドラッグする必要があります。 sum関数を実行する合計8つの列があります。これはマクロを使うことによってのみ可能ですか?

=SUBTOTAL(3,H2:H34) 
+0

'= SUBTOTAL(3、H:H)'ないオプション? –

+0

これは私が試した最初の選択肢でしたが、合計が「0」になりました。 (H:35) – KKP

答えて

1

我々はこれを使用することができます一つの行:行が追加または参照がそのまま残ります削除された今と

=SUBTOTAL(3,H2:INDEX(H:H,ROW()-1)) 

行2が削除される可能性がある場合は、#Refエラーが発生します。あなたはこの数式を使用することができることを避けるために:

=SUBTOTAL(3,INDEX(H:H,2):INDEX(H:H,ROW()-1)) 

今は特定のセル参照とが存在しない追加または削除、式に影響を与えない範囲でダイナミックになります。

enter image description here


enter image description here

+0

ゴールデン。これは私の問題を解決しました。マクロの外に解決策があることを知りました。 – KKP

1

= sum(range1)などの名前付き範囲を使用できます。

Select first empty cell in column F starting from row 1. (without using offset)

名前付き範囲のための参照を変更するには、最初の空のセルを見つけます。

これをトリガーするのは難しいでしょう... on_saveを使用する可能性がありますか?

またはオプション2 ....かわすのビットが、動作することができます....

あなたの合計が、セルH35である...多分H36に移動言うと、ダミー隠された行を作成35(0.1行の高さ)にあります。そのようにして行を追加すると、それは常に35を超えます。合計H1:H35を使用すると、常に自動的に更新されますか?そのはっきりした解決策ではなく、動作するはずです

1

次のコードを使用して、必要な列に "H"列を調整する必要があります。あなたの式は、範囲の広がりを引いた状態で

Dim sumtest As Variant 

sumstest = Application.WorksheetFunction.Subtotal(9, Range("H2:H" & ActiveSheet.Cells(ActiveSheet.Rows.Count, "H").End(xlUp).Row)) 
+0

OTとして:Integerは推奨されていませんが、なぜ整数をlongに変更するのですか? – Sgdva

+0

代わりにDoubleに変更します。 IntegerとLongの両方が10進数を削除します(存在する場合)。 –

関連する問題