У меня есть таблица, состоящая из основных задач и подзадач, мне нужны подзадачи, чтобы подвести итог основной задаче.Проблема состоит в том, что подзадачи могут быть 1 или более подзадачей каждый раз в одном и том же столбце.Это должно происходить в коде VBA и вставлять начальную строку подзадачи и конечную строку подзадачи в каждую основную задачу.так что, если электронная таблица редактируется, значение основной задачи будет отражать изменения.
Я попытался создать диапазоны для хранения адресов начальной и конечной подзадач и адреса основной задачи.но когда я пытаюсь вставить его в формулу для вставки в электронную таблицу, он показывает имена переменных того, что должно быть адресом ячейки.
Sub DynamoRange()
Dim range1 As Range
Dim range2 As Range
Dim range3 As Range
Dim range4 As Range
Dim range5 As Range
Dim badd
Dim eadd
Dim placeholder
Dim counter3
Set range1 = Range("A1")
Set range2 = Range("E1")
'Find 1st Main Task'
NextLine1:
'Handles beginning section of spreadsheet blanks
If IsNumeric(range2.Offset(counter3, 0)) = True And range1.Offset(counter3, 0) <> "Yes" Then
counter3 = counter3 + 1
GoTo NextLine1
Else
If IsNumeric(range2.Offset(counter3, 0)) = False And range1.Offset(counter3, 0) <> "Yes" Then
counter3 = counter3 + 1
GoTo NextLine1
Else
'Beginning of a new section Set Start and Sum reference
If IsNumeric(range2.Offset(counter3, 0)) = True And range1.Offset(counter3, 0) = "Yes" And range1.Offset(counter3 - 1, 0) <> "Yes" Then
Set range3 = range2.Offset(counter3 - 1, 0)
Set range4 = range3.Offset(1, 0)
counter3 = counter3 + 1
GoTo NextLine1
Else
'Set the ending sum point for the task order and apply Ranges - 3-5 into a formula before moving to next section
If IsNumeric(range2.Offset(counter3, 0)) = True And range1.Offset(counter3, 0) = "Yes" And range1.Offset(counter3 + 1, 0) <> "Yes" Then
Set range5 = range2.Offset(counter3, 0)
badd = range3.Address(, , xlR1C1)
eadd = range4.Address(, , xlR1C1)
range3.FormulaR1C1 = "=SUM(range3.Address(,,xlR1C1):
'КОНЕЦ КОДА - ниже приведены попытки получить адреса для передачи в формулу SUM
'range3.FormulaR1C1 =
"=SUM(Address(badd,badd,,0,,):Address(eadd,eadd,,0,))"
'range3.Formula = "=SUM(Address(badd,badd,,0,,):Address(eadd,eadd,,0,))"
'CURRENT EXCEL RESULT =SUM(range3.Address(,,xlR1C1): range4.Address(,,xlR1C1))