|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.10.2017, 11:31 | #1 |
Пользователь
Регистрация: 07.09.2017
Сообщений: 44
|
Пересчет итогов по столбцам после удаления строки.
Всем привет. Имеется строка с итогами, которые рассчитываются макросом. Всё работает нормально, но при удалении строки не происходит перерасчет итогов. Как бы устранить эту проблему в моём документе ? В VBA познания мизерные, строго не судить за код, т.к. слеплено из разных источников. Всем, откликнувшимся, спасибо. Файл во вложении.
|
12.10.2017, 11:47 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
зачем использовать макросы там, где можно прекрасно обойтись формулами?
они будут работать и быстрее и надёжнее. да и это проще, в конце концов! |
12.10.2017, 14:46 | #3 |
Форумчанин
Регистрация: 11.10.2010
Сообщений: 134
|
Не, ну при желании конечно можно отследить удаление строки, но в данном случае действительно проще формулами обойтись. Либо можно сделать удаление строки с помощью макроса.
|
12.10.2017, 15:22 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
сделать удаление строки с помощью макроса - легко
отследить удаление строки - чуть сложнее, но действительно можно а самый геморрой - запретить пользователю удалять строку стандартными средствами (только в этом контролируемом файле, в остальных-то можно, зачем пользователя ограничивать, он начнет нервничать) т.е. с практической точки зрения формула - это идеальное решение, но с познавательной (если интересно осваивать VBA) - можно заморочиться со всеми этими макросами. и замечено: кому интересно осваивать, тот тихонько и самостоятельно ищет ответы на возникшие вопросы)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
12.10.2017, 16:02 | #5 |
Пользователь
Регистрация: 07.09.2017
Сообщений: 44
|
Понятно, что формула в данном случае лучше всего. Но хотелось бы узнать, как это можно сделать макросом. Пример решения этого мне в инете не попадался, вот и интересуюсь.
|
12.10.2017, 16:21 | #6 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
Модифицировал
Заказать макрос можно на сайте http://excel4you.ru/
|
12.10.2017, 16:31 | #7 |
Форумчанин
Регистрация: 11.10.2010
Сообщений: 134
|
|
12.10.2017, 16:33 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
так технически это не сложно.
дело в том, что процедура, которая у Вас назначена в качестве обработчика при событии возникновения изменений на листе (я имею в виду Worksheet_Change), вызывается и в случае удаления. это легко посмотреть - либо сделайте точку останова в коде, либо вставьте в процедуру первой строчкой MsgBox например, Код:
можно, например, не заморачиваться и при любом вызове Worksheet_Change пересчитывать итоги. Производительность, конечно, рухнет ниже плинтуса. Можно пытаться оптимизировать - например, при удалении/вставки строки - счётчик Target.Cells.Count равен 16384 (для одной строки - если выделено несколько строк - то надо умножить на число строк) и вызывать пересчёт только в этом случае. Но это всё равно "квадратные колёса" - не смысла в этом нет, ни проку, ни скорости, ни надёжности. Вообще, запомните "золотое" правило макросов в MS Excel ( (c) не мой) - "Всё, что может быть сделано без макросов (формулами) должно быть сделано без макросов (формулами)." |
12.10.2017, 17:02 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
12.10.2017, 17:04 | #10 |
Пользователь
Регистрация: 07.09.2017
Сообщений: 44
|
Огромное спасибо Watcher_1 за решение проблемы и конечно всем, принявшим участие в обсуждении, за советы.
Последний раз редактировалось irina181; 12.10.2017 в 17:08. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос удаления 300 строк после .... | lakcin | Microsoft Office Excel | 3 | 31.08.2014 15:04 |
Добавляется новая строка после удаления | Dozent | БД в Delphi | 5 | 11.02.2014 17:21 |
Сортировка кода в таблице после удаления | allegator333 | БД в Delphi | 5 | 20.05.2011 21:57 |
Очищение DateTimePicker после удаления записи | Droid | БД в Delphi | 9 | 21.10.2009 15:57 |
Очистка формата после удаления макроса | valerij | Microsoft Office Excel | 2 | 14.06.2008 12:00 |