Одним из способов может быть UDF
Вставьте это в модуль
Function SumSheets(ByVal SheetName As String) as Double
SumSheets=Application.WorksheetFunction.Sum(Worksheets(SheetName).Range.Columns(8))
End Function
И используйте его как стандартную формулу ...
=SumSheets(A1)
Вернетсясумма столбца H на листе, названном в A1
. Или как вариант, вы можете использовать это вместе с UDF.Вы вставили бы его в тот же модуль, что и UDF, но вам не нужно вводить формулу.Вместо этого вы выбираете ячейку в столбце и запускаете этот макрос.Формулы добавляются автоматически.
Sub FillRangeWithSumSheets()
Dim n As Name: Dim s As String: s = "SumSheetsRange"
With ActiveWorkbook
For Each n In .Names
If n.Name = s Then
n.Delete
Exit For
End If`
Next
Set n = .Names.Add(s, "=OFFSET($A1,0," & ActiveCell.Column - 1 & ",COUNTA(Sheet1!$A:$A),1)")
n.Visible = 1
Range(s).Formula = "=SumSheets(A1)"
End With
End Sub