David fügte großen Arbeitsblättern Zwischensummen (Daten | Zwischensummen) hinzu und suchte nach einer Möglichkeit, die Zwischensummenzellen in verschiedene Zellen zu verschieben. Angenommen, Excel fügte die automatischen Zwischensummen hinzu, die in Spalte S hinzugefügt wurden, und die von Excel hinzugefügte SUBTOTAL-Formel bezog sich auf Zellbereiche in Spalte S. David wollte die SUBTOTAL-Formeln (und nur diese Formeln) verschieben Spalte S bis Spalte T, und die Formeln beziehen sich immer noch auf Details in Spalte S.

Eine Möglichkeit besteht darin, die SUBTOTAL-Formeln einzeln an die gewünschten Stellen zu verschieben. (Sie würden Strg + X und Strg + V verwenden, um die Zellen zu verschieben, anstatt Strg + C und Strg + V, um lediglich Kopien der Zellen zu erstellen.) Wenn die Arbeitsblätter groß sind und viele Zwischensummen enthalten, kann dies sehr mühsam werden schnell.

Tedium in Excel ist häufig der Hauptimpuls für die Erstellung eines Makros. Dieser Fall ist keine Ausnahme. Es ist möglich, ein Makro zu erstellen, das die eigentliche Verschiebung der SUBTOTAL-Formeln ausführt. Betrachten Sie das folgende Beispiel:

Sub MoveSubtotals()

Dim rCell As Range     Dim rng As Range     Dim iCol As Integer     Dim iOffset As Integer

iCol = 19  '19 is Column S     iOffset = 1 'Positives go right, negatives go left     Set rng = Intersect(Selection.CurrentRegion, Columns(iCol))

For Each rCell In rng         If InStr(rCell.Formula, "SUBTOTAL") Then             rCell.Offset(0, iOffset).Formula = _                 rCell.Formula             rCell.ClearContents         End If     Next End Sub

In diesem Beispiel wird jede in Spalte S ausgewählte Zelle untersucht. Wenn die Formel in der Zelle das Wort SUBTOTAL enthält, wird die Formel eine Spalte nach rechts in Spalte T kopiert und aus der Zelle in Spalte S gelöscht. Sie können sie ändern Die Entfernung nach links oder rechts, um die die Zwischensummen verschoben werden, indem einfach der der iOffset-Variablen zugewiesene Wert geändert wird. (Beachten Sie, dass Sie das Makro mit einem ausgewählten Zellenbereich ausführen müssen und ein Teil dieser Auswahl Spalte S enthalten muss.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2119) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: