Использование макроса OnEntry для создания выполняющихся итогов в комментарии к ячейке в Excel
Сводка
В Microsoft Excel можно избежать циклических ссылок при создании выполняющегося итога, сохраняя результат в нечислемой части листа. Эта статья содержит пример процедуры Microsoft Visual Basic для приложений, которая делает это путем сохранения запущенного итога в примечании ячейки.
Дополнительная информация
Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.
Создание выполняющихся итогов в ячейке
Откройте новую книгу в Microsoft Excel.
Запустите Редактор Visual Basic (нажмите клавиши ALT+F11).
В меню Вставка выберите пункт Модуль.
Введите в этот модуль следующие макросы:
' The Auto_Open name forces this macro to run every time ' the workbook containing this macro is opened. Sub Auto_Open() ' Every time a cell's value is changed, ' the RunningTotal macro runs. Application.OnEntry = "RunningTotal" End Sub '---------------------------------------------------------- ' This macro runs each time the value of a cell changes. ' It adds the current value of the cell to the value of the ' cell comment. Then it stores the new total in the cell comment. Sub RunningTotal() On Error GoTo errorhandler ' Skip cells that have no comment. With Application.Caller ' Checks to see if the cell is a running total by ' checking to see if the first 4 characters of the cell ' comment are "RT= ". NOTE: there is a space after the equal ' sign. If Left(.Comment.Text, 4) = "RT= " Then ' Change the cell's value to the new value in the cell ' plus the old total stored in the cell comment. RT = .Value + Right(.Comment.Text, Len(.Comment.Text) - 4) .Value = RT ' Store the new total in the cell note. .Comment.Text Text:="RT= " & RT End If End With Exit Sub ' Skip over the errorhandler routine. errorhandler: ' End the procedure if no comment in the cell. Exit Sub End Sub '-------------------------------------------------------------- ' This macro sets up a cell to be a running total cell. Sub SetComment() With ActiveCell ' Set comment to indicate that a running total is present. ' If the ActiveCell is empty, multiplying by 1 will ' return a 0. .AddComment .Comment.Text Text:="RT= " & (ActiveCell * 1) End With End Sub
После ввода макросов нажмите кнопку Закрыть и Вернуться в Microsoft Excel в меню Файл .
Сохраните и закройте книгу, а затем снова откройте ее.
Введенный макрос Auto_Open запускается при открытии книги.
Выберите ячейку C3.
Это ячейка, которая будет содержать комментарий с запущенным итогом.
Выполните следующие действия, чтобы запустить макрос SetComment:
- В меню Сервис выберите пункт Макрос, а затем нажмите Макросы.
- В диалоговом окне Макрос щелкните SetComment и нажмите кнопку Выполнить.
Пример использования запущенного итога
Чтобы использовать запущенный итог, выполните следующие действия.
- Введите число 10 в ячейку C3.
- Выберите ячейку C3 и обратите внимание, что комментарий отображает "RT= 10" (без кавычек).
- Введите число 7 в ячейку C3.
- Выберите ячейку C3 и обратите внимание, что комментарий отображает "RT= 17" (без кавычек).
Удаление запущенного итога
Чтобы удалить запущенный итог, выполните следующие действия.
- Выберите ячейку, содержащую итог выполнения, который требуется удалить.
- Щелкните ячейку правой кнопкой мыши и выберите команду Удалить комментарий в контекстном меню.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по