/ / встановити формулу суми у excel, використовуючи vba - excel, excel-vba, excel-2007, excel-formula, vba

встановіть формулу суми в Excel, використовуючи vba - excel, excel-vba, excel-2007, excel-формулу, vba

Працюю над макросами Excel, де я намагаюся додати значення комірок зверху, щоб обчислити загальне значення. Ось так виглядають мої даніЗразок документа Excel

Тут я хочу додати вище значення комірок для кожного стовпця, щоб обчислити суму. Для цього я написав макрос наступним чином.

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

Це має встановити формулу для кожної комірки підряддо 5 стовпців. Але вона встановлює однакову формулу для всіх комірок підряд, вона повинна отримувати зміни відповідно до стовпця. Як встановити формулу суми для кожної комірки для відповідного стовпця?

Відповіді:

9 для відповіді № 1

Не впевнений, що я цілком розумію ваш код. Ви, здається, пишете в рядок 4, але ви також хочете підсумовувати від рядка 4 до рядка 6. Це створить кругову посилання.

Нехай "s припустимо, що формула записана на рядок 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

0 для відповіді № 2

Спробуй щось подібне.

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

0 для відповіді № 3

ще деякі деталі до стилів 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])"

Якщо ви хочете те саме, але закінчується абсолютною посиланням - це виглядає так.

 Worksheets(5).Cells(5, 3).FormulaR1C1 = "=SUM(R1C1:R4C2)"