
Использование VBA для формулы суммы в Excel

Вопрос
Работа с макросом Excel, где я пытаюсь добавить значения ячеек из вышеуказанных ячеек для расчета итогов. Вот как выглядят мои данные:
Здесь я хочу добавить указанное выше значение ячейки для каждого столбца, чтобы вычислить сумму. Для этого я написал макрос следующим образом.
Для cl = от 2 до 5 листов (5) .Cells (4, cl) .Formula = «= SUM (B4: B6)» Следующий cl
Это должно установить формулу для каждой ячейки в строке до 5 столбцов.
Но установите одну и ту же формулу для всех ячеек в строке, она должна меняться в зависимости от столбца. Как я могу установить формулу суммы для каждой ячейки в соответствующем столбце?
Лучший ответ
Не уверен, что понимаю ваш код. Похоже, вы печатаете в строке 4, но вы также хотите добавить строку из строки 4 в строку 6. Это создаст круговую ссылку.
Предположим, вы пишете формулу в строке 3. Вам нужно будет использовать ссылочный стиль R1C1 для суммирования ячеек по текущим ячейкам.
Уловка, чтобы узнать, какую ссылку использовать:
- Получите новый лист, введите = СУММ (B4: B6) в ячейку B3 и скопируйте вправо.
- Затем нажмите «Файл»> «Параметры»> «Формулы» и выберите «Стиль ссылки R1C1.
- Теперь проверьте формулы на листе. Вы увидите это: = СУММ (R [1] C: R [3] C)
Это то, что вам нужно в макросе.
Для cl = от 2 до 5 листов (5) .Cells (3, cl) .FormulaR1C1 = «= SUM (R [1] C: R [3] C)» cl следующий ответ № 1
Попробуйте что-нибудь подобное.
Для cl = от 2 до 5 ColName = Left (Cells (1, cl) .Address (False, False), 1 — (cl> 26)) Worksheets (5) .Cells (4, cl) .Formula = «= SUM («& ColName &» 4: «& ColName &» 6) «Следующий cl Ответ # 2
некоторые детали для стиля R1C1 и R [1] C [1] в формулах.
Насколько мне известно, R [1] C [1] создает относительную ссылку, а R1C1 создает абсолютную ссылку. Но имейте в виду, что числа для R [x] и C [y] смещены относительно ячейки, содержащей формулу.
Это означает, что если вы хотите показать сумму A1: B4 в C5, код должен выглядеть так:
Рабочие листы (5) .Cells (5, 3) .FormulaR1C1 = «= СУММ (R [-4] C [-2]: R [-1] C [-1])»
Если вы хотите сделать то же самое, но в итоге получите абсолютную ссылку, это будет выглядеть примерно так.
Рабочие листы (5) .Cells (5, 3) .FormulaR1C1 = «= СУММ (R1C1: R4C2)» Ответ n. 3
Вы можете использовать очень простую формулу, как показано ниже:
Sub sum_month () Sheets («13»). Активировать интервал («D2»). Формула = «= СУММ (A1 + A2 + A3)» End Sub
А затем просто щелкните и перетащите ячейку, чтобы автоматически заполнить больше строк
Ответьте n. 4
В вашем случае вы можете использовать это:
Для cl = от 2 до 5 ColName = Left (Cells (1, cl) .Address (0, 0), (Cells (1, cl) .Column Я думаю, вы можете просто обратиться к полному спектру формул, и Excel будет достаточно умен, чтобы настроить столбцы.
Без петли:
Рабочие листы (5). Ячейки (4, cl). Изменить размер (1,4). Формулы = «= СУММ (B4: B6)”