Можно ли автоматически добавлять ячейки с нового листа в формулу в Excel?
Я хотел бы сделать новую финансовую таблицу для отслеживания расходов. Поскольку ведомости расходов создаются как и когда я не могу предварительно сгенерировать электронную таблицу для заполнения формулами. У меня есть сводный лист, в который добавляются итоги с других листов, и в настоящее время я создаю формулу вручную в конце месяца. Есть ли способ автоматического суммирования по нескольким листам и добавления новых листов к сумме при их создании?
Возможно ли это с помощью стандартного Excel или мне нужно будет использовать какой-нибудь VBA?
Я знаю, как добавить одну и ту же ячейку к нескольким листам (см. Excel - формулы для общего количества на нескольких листах?)
Этот скрипт vba является частью пути к тому, что я хочу сделать, но не совсем то, что я хочу сделать: Excel - автоматически импортировать данные из ячейки при создании новой вкладки
PS Я не знаю VBA, но готов учиться. Я привык к C/Python.
1 ответ
Скажем, например, у вас есть промежуточный итог в Sheet1!A1
, Итак, теперь вы можете создать макрос, который вы можете запустить, который возьмет все суммы с других листов и суммирует их.
Давайте предположим, что итоговые значения для каждого листа находятся в ячейке A10
-
Sub updatethesum()
Dim ws As Worksheet
Dim i As Double
i = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet1" Then
i = i + ws.Range("A10")
End If
Next
Sheets("Sheet1").Range("A1") = i
End Sub
Если вы беспокоитесь, кто-то поставит письмо вместо цифры в A10
Вы можете ограничить ввод чем-то вроде этого -
Sub updatethesum()
Dim ws As Worksheet
Dim i As Double
i = 0
Dim bletter As Boolean
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet1" Then
bletter = IsNumeric(ws.Range("A10").Value)
If bletter = True Then
i = i + ws.Range("A10")
End If
End If
Next
Sheets("Sheet1").Range("A1") = i
End Sub