-1

У меня есть лист, который пользователь открывает каждый день и нажимает кнопку, которая копирует текущий лист на новый лист и переименовывает (день 1, день 2 и т.д.).

Я хочу вести кумулятивный подсчет в некоторых ячейках на этих листах. Например, в первый день в таблицу в столбце «Ежедневно» был введен 1 инцидент безопасности, а в столбце «Совокупность» - 1. Когда лист 2-го дня будет создан, я хочу, чтобы в столбце «Совокупный» добавился инцидент первого дня к любому номеру инцидента, введенному в ежедневную ячейку дня 2. Затем, когда будет создан лист 3-го дня, я хочу, чтобы он суммировал все инциденты за все 3 дня в кумулятивной ячейке.

В проекте может быть любое количество дней, и я хочу, чтобы в самый последний день всегда было правильное совокупное количество инцидентов. Другие рабочие листы в рабочей тетради также должны будут извлекать информацию из самого последнего листа. Это возможно?

1 ответ1

0

Это предполагает, что вы называете свои листы, как указано в вашем вопросе, и новый лист активен. Вы добавите этот код в конец вашего существующего кода. Это создаст формулу для расчета совокупной стоимости, которую вы ищете. Когда пользователь вводит или изменяет значение числа инцидентов, он обновляется.

Dim intLast
Dim strSheet As String

'Get name of active sheet
strSheet = ActiveSheet.Name

    If strSheet <> "Day 1" Then 'Skips the Day 1 sheet

        intLast = Right(strSheet, 1) - 1
        strSheet = "Day " & intLast

        'Add formula to sum total from the previous day and this sheet
        Range("C1").Formula = "=A1+'" & strSheet & "'!C1"

    End If

intLast = ""
strSheet = ""

Измените код так, чтобы адрес ячейки «C1» был адресом, где вы хотите накапливать итоги. Кроме того, измените A1 на ячейку, в которой есть введенное пользователем значение инцидентов безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .