Формула суммы суммы в excel с использованием vba

Vba
Вопрос:Работа с макросами excel, где я пытаюсь добавить значения ячейки из вышеперечисленных ячеек, чтобы вычислить общее значение. Вот как мои данные выглядят как Здесь я хочу добавить выше значения ячейки для каждого столбца, чтобы вычислить сумму. Для этого я написал макрос следующим образом. For cl = 2 To 5 Worksheets(5).Cells(4, cl).Formula = "=SUM(B4:B6)" Next cl

Вопрос:

Работа с макросами excel, где я пытаюсь добавить значения ячейки из вышеперечисленных ячеек, чтобы вычислить общее значение. Вот как мои данные выглядят как Sample Excel Document

Здесь я хочу добавить выше значения ячейки для каждого столбца, чтобы вычислить сумму. Для этого я написал макрос следующим образом.

For cl = 2 To 5 Worksheets(5).Cells(4, cl).Formula = «=SUM(B4:B6)» Next cl

Это должно установить формулу для каждой ячейки в строке до 5 столбцов.
Но он устанавливает одну и ту же формулу для всех ячеек в строке, она должна получать изменение в соответствии с столбцом. Как установить формулу суммы для каждой ячейки для соответствующего столбца?

Лучший ответ:

Не уверен, что я понимаю ваш код. Кажется, что вы записываете в строку 4, но вы также хотите сделать сумму из строки 4 в строку 6. Это создаст круговую ссылку.

Предположим, что формула записывается в строку 3. Вы захотите использовать стиль ссылки R1C1, чтобы сделать ячейки суммированными относительно текущих ячеек.

Трюк, чтобы узнать, какая ссылка на использование:

  • Получите новый рабочий лист, введите =SUM(B4:B6) в ячейку B3 и скопируйте вправо.
  • Затем нажмите “Файл” > “Параметры” > “Формулы” и выберите Стиль ссылки R1C1.
  • Теперь проверьте формулы на листе. Вы увидите следующее: =SUM(R[1]C:R[3]C)

Это то, что вам нужно в макросе.

For cl = 2 To 5 Worksheets(5).Cells(3, cl).FormulaR1C1 = «=SUM(R[1]C:R[3]C)» Next cl Ответ №1

Попробуйте что-то вроде этого.

For cl = 2 To 5 ColName = Left(Cells(1, cl).Address(False, False), 1 — (cl > 26)) Worksheets(5).Cells(4, cl).Formula = «=SUM(» & ColName & «4:» & ColName & «6)» Next cl Ответ №2

некоторые подробности для R1C1 и R [1] C [1] стиль в формулах.
Насколько я знаю, R [1] C [1] создает относительную ссылку, а R1C1 создает абсолютную ссылку. Но имейте в виду, что цифры для R [x] и C [y] являются смещением к ячейке, которая содержит формулу.

Это означает, что если вы хотите показать сумму A1: B4 в C5, код должен быть таким:

Worksheets(5).Cells(5, 3).FormulaR1C1 = «=SUM(R[-4]C[-2]:R[-1]C[-1])»

Если вы хотите сделать то же самое, но в конечном итоге с абсолютной ссылкой, aht будет выглядеть так.

Worksheets(5).Cells(5, 3).FormulaR1C1 = «=SUM(R1C1:R4C2)» Ответ №3

Вы можете использовать очень простую формулу, как показано ниже:

Sub sum_month() Sheets(«13»).Activate Range(«D2»).Formula = «=SUM(A1+A2+A3)» End Sub

А затем просто нажмите и перетащите ячейку, чтобы автоматически заполнить другие строки

Ответ №4

Для вашего случая вы можете использовать это:

For cl = 2 To 5 ColName = Left(Cells(1, cl).Address(0, 0), (Cells(1, cl).Column < 27) + 2) ValueSum = «=SUM(» & ColName & «4:» & ColName & «6)» Worksheets(5).Cells(4, cl).Formula = ValueSum Next Ответ №5

Я думаю, что вы можете просто ссылаться на весь диапазон формул, и Excel будет достаточно умен, чтобы настроить столбцы.

Без циклы:

Рабочие листы (5). Ячейки (4, кл).resize(1,4). Формулы = “= СУММА (B4: B6)”

Оцените статью
Добавить комментарий