Дэвид добавлял промежуточные итоги (Данные | Промежуточные итоги) на большие рабочие листы и искал способ переместить ячейки промежуточных итогов в другие ячейки. Например, предположим, что, когда Excel добавлял автоматические промежуточные итоги, они были добавлены в столбец S, а формула ПРОМЕЖУТОЧНЫЙ ИТОГ, добавленная Excel, ссылалась на диапазоны ячеек в столбце S. Дэвид хотел переместить формулы ПРОМЕЖУТОЧНЫЙ ИТОГ (и только эти формулы) из столбец S в столбец T, а формулы по-прежнему относятся к деталям в столбце S.

Один из вариантов — пройти и переместить формулы ПРОМЕЖУТОЧНОГО ИТОГА по одной в нужные места. (Вы могли бы использовать Ctrl + X и Ctrl + V для перемещения ячеек, а не Ctrl + C и Ctrl + V для простого создания копий ячеек.) Если рабочие листы большие, с множеством промежуточных итогов, это может стать очень утомительным. быстро.

Скука в Excel часто является основным стимулом для создания макроса. Этот случай не исключение. Можно создать макрос, который будет выполнять фактическое перемещение формул ПРОМЕЖУТОЧНЫЙ ИТОГ. Рассмотрим следующий пример:

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

В этом примере проверяется каждая ячейка, выбранная в столбце S. Если формула в ячейке содержит слово ПРОМЕЖУТОЧНЫЙ ИТОГ, то формула копируется на один столбец вправо, в столбце T, и удаляется из ячейки в столбце S. Вы можете изменить расстояние влево или вправо, на которое перемещаются промежуточные итоги, просто изменяя значение, присвоенное переменной iOffset. (Обратите внимание, что вы должны запустить макрос с выбранным диапазоном ячеек, и часть этого выбора должна включать столбец S.)

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2119) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Moving_Subtotals [Moving Subtotals].