Bewegende subtotalen

David werd het toevoegen van subtotalen (Data | subtotaal) tot grote werkbladen en op zoek naar een manier om het subtotaal cellen verplaatsen naar verschillende cellen. Bijvoorbeeld, veronderstel dat wanneer Excel de automatische subtotalen toegevoegd, werden ze toegevoegd in kolom S, en de SUBTOTAAL formule toegevoegd door Excel aangeduid reeksen van cellen in kolom S. David wilde de SUBTOTAAL formules (en alleen die formules) uit te gaan kolom S naar kolom T, en hebben de formules nog steeds verwijzen naar detail in kolom S.

Een optie is om door te gaan en beweeg de SUBTOTAAL formules, een voor een, naar de gewenste locaties. (Je zou Ctrl + X en Ctrl + V gebruiken om de cellen te verplaatsen, in plaats van Ctrl + C en Ctrl + V om alleen kopieën van de cellen te creëren.) Als de werkbladen zijn groot, met veel subtotalen, kan dit heel erg vervelend geworden snel.

Verveling in Excel is vaak de belangrijkste impuls voor het maken van een macro. Deze zaak is geen uitzondering. Het is mogelijk om een ​​macro die de werkelijke beweging van het subtotaal formules doen maken. Neem het volgende voorbeeld:

Sub MoveSubtotals ()
Dim rCell als Waaier
Dim rng als Waaier
Dim iCol As Integer
Dim loffset As Integer

iCol = 19 '19 is Column S
loffset = 1 'Positief ga rechts, negatieven ga links
Set rng = Intersect (Selection.CurrentRegion, Columns (iCol))
Voor Elke rCell In RNG
Als InStr (rCell.Formula, "SUBTOTAAL") Then
rCell.Offset (0, loffset) .Formula = _
rCell.Formula
rCell.ClearContents
End If
Volgende
End Sub

Dit voorbeeld werkt door het onderzoeken van elke geselecteerde cel in kolom S. Indien de formule in de cel het woord subtotaal, dan is de formule gekopieerd één kolom rechts bevat, in kolom T, en verwijderd uit de cel in kolom S U kunt wijzigen de afstand naar links of rechts, dat de subtotalen worden bewogen door simpelweg de waarde toegekend aan de loffset variabele veranderen. (Merk op dat u de macro met een bereik van cellen geselecteerd moet draaien, en een deel van die selectie moet bevatten kolom S.)

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (2119) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vindt u hier: Moving subtotalen.