VBA - поддерживать целостность формулы ячейки - PullRequest
0 голосов
/ 29 января 2020

Мне трудно вводить формулу Indirect в мой код. Я понимаю, что могу использовать FormulaR1C1, однако это создает формулу в ячейке, которая довольно статична c и не слишком любезна при добавлении строк после запуска кода. Я хотел бы, чтобы мой код был чем-то вроде этой формулы в ячейке =SUM(L99:INDIRECT("R[-1]C",0)), которая находится в ячейке L106.

Formula Screenshot

Ниже мой код, а также моя попытка создания вышеуказанной формулы. Спасибо!

   Dim s1 As Excel.Worksheet: Set s1 = ActiveWorkbook.Worksheets(ThisWorkbook.Sheets.Count)

   With s1

        'What the current formula is
        .Cells(rwCnt, abRng.Column).Offset(4, 6).FormulaR1C1 = "=sum(R[0]C[-5],R[0]C[-2])"
        .Cells(rwCnt, abRng.Column).Offset(11, 6).FormulaR1C1 = "=Sum(R[-7]C[0]:R[-1]C[0])"

        'My attempt
        .Cells(rwCnt, abRng.Column).Offset(11, 6).Formula = "=sum(" & .Cells(rwCnt, abRng.Column).Offset(4, 6) _
            & ":INDIRECT(""R[-1]C"", 0))"

   End With

1 Ответ

1 голос
/ 29 января 2020

.Cells(rwCnt, abRng.Column).Offset(4, 6) я думаю, что это будет возвращать значение в ячейке, где вам нужен адрес

Например, cells(1,1) вернет значение, где cells(1,1).address вернет $A$1

...