Здесь есть синтаксическая ошибка =sum(L16:16" & lastcol-1 & ")
, вам нужна буква столбца перед номером строки.
Если ваш lastcol не больше 27, вы можете использовать следующий оператор:
Range(Cells(16, lastcol), Cells(LR, lastcol)).Formula = "=sum(L16:" & Chr(lastcol - 1 + 64) & "16)"
Либо добавьте эту функцию в ваш проект:
Function ColLetter(Col As Long) As String
Dim vArr
vArr = Split(Cells(1, Col).Address(True, False), "$")
ColLetter = vArr(0)
End Function
Возвращает букву любого номера столбца, который вы указали.Тогда в вашем коде вы можете использовать его так:
Range(Cells(16, lastcol), Cells(LR, lastcol)).Formula = "=sum(L16:" & ColLetter(lastcol - 1) & "16)