(no subject)

Jul 02, 2020 04:34

Перечитывал сейчас последние свои записи, про макрос в том числе. Ну да не даёт он мне покоя до сих пор. Решил докопаться почему же, когда я внедрил прогресс бар это ускорило макрос. Вспомнил что там в каждый цикл добавилась такая штука - DoEvents. Говорит сама за себя. А может и нет. Она короче останавливает макрос и даёт выполниться другим командам которые идут через процессор. Таким образом приложение не подвисает. Так вот я решил сейчас попробовать на старых копиях просто внедрить эту команду в каждый цикл и посмотреть что будет. Первое выполнение было порядка 160 секунд. То есть раза в 4 дольше чем раньше. Отключил все проги. Опять запускаю. Опять тоже самое очень долго. Запускаю конечный вариант и он тоже тормозит безбожно! Очень долго не мог понять в чём дело, даже комп перегружал. Оказалось что когда я последний раз заходил в шаблон word, который используется затем в макросе, то сохранил его с видом Несколько страниц. Конкретно страниц наверно под 50 на одном экране. И не смотря на то что я даже не вижу самого приложения Word пока работает макрос, этот момент существенно замедлил всё дело. Выбрал одну страницу и всё нормализовалось. DoEvents внутри циклов действительно ускорили работу макроса. Без них старый макрос делался 43 секунды, с ними - 33 секунды.

Решил залезть на форум, который недавено откопал forumvba.ru и там поделиться своим открытием, точнее даже сразу несколькими. Я там задавал вопросы про Selection. Мне там помогли. И я даже перевёл 11 рублей админу. Он прислал письмо после регистрации со всеми своими реквизитами и просил если мне не сложно задонатить за помощь. Помощь была. Через несколько дней я таки задонатил. Хотя раньше такого не практиковал. Сейчас хотел написать про это ускорение. Ведь моя тема называлась как ускорить макрос. А в итоге обнаружил что мой изначальный вопрос уже совсем другой. Все промежуточные сообщения удалены. А ведь там было развитие темы. Были другие Selections вообще. В цикле. И это было важно. Теперь это всё тупо исчезло, переписано, упрощено. И я решил что нахрен этот сайт тогда. Надо возвращаться на старый форум, на котором я уже несколько лет зареген. В общем поведение админа конкретно не понравилось. Да и форум так себе. Даже код как код отформатировать нельзя. Цитат нет. Отвечает по сути только один админ. Некоторых вещей не знает как я понял.

Ещё поуменьшал размеры самих файлов с кодом, с подъездами и шаблон в ворде. Уменьшить размер можно тупо скопировав лист в новый документ или книгу. Если препарировать файл xlsx (переименовать в zip и разархивировать его), то можно увидеть например файл styles.xlm который может очень до хрена весить. Или в какой-нибудь другой папке - установки принтеров. Всё это добро может копиться годами, и даже полностью пустой файл весить несколько мегабайт. Принтера легко убираются инспектором документов. А вот стили не зачищаются. В общем файлы стали в 1,5-2 раза меньше весить. Но на работу макроса это не повлияло. Ну по крайней мере новых рекордов по скорости работы нет.

Потом обратил внимание пару дней назад, что некоторые мои файлы со стёклами весят 25кб, а некоторые 250кб. Хотя объём данных там практически один и тот же. Стал копаться, разбираться. Ну да прокрастинация она такая. В общем откопал те самые styles.xlm. В инете про их зачистку ничего не нашёл. Пытался разными способами удалить или подменить этот файл, но каждый раз файл экселя получался испорченным. Решил что надо написать макрос который бы открывал файлы и копировал их содержимое в пустую книгу. Встало несколько задач - копировать колонтитулы. Загуглил, нашёл. При чём тот админ на форуме не знал про это. Потом необходимо было сохранить границы печати. Вроде тоже нашёл где это можно взять. Но макрос такой не на 5 минут писанины. Поэтому до реализации не дошёл пока. Ну и в работе конечно мне это никак не поможет. Файлы у нас и так небольшие. Открываются быстро. Хотя может на старых компах это и ускорит открытие на секунду другую.

В целом мне всё так же не работается. Думал сегодня добить створки. Там осталось чуть чуть. Но пол дня проспал. Потом голосовать ездил и к родителями. Там и застрял. Вроде даже придумал как сделать макрос для заполнений и створок. Опять же через шаблоны! Это новое решение для меня. Раньше я так не делал. Создавал новый файл и затем его заполнял. А что такое заполнить файл? Надо создать шапку, форматирование таблиц, заполнить всё это, где-то формулы прописать. И таким образом получается кода на несколько страниц формата А4. При этом если просто открыть шаблон который например по умолчанию может вместить например 100 створок, заполнить его, и удалить лишние незаполненные ячейки, то кода получится очень мало. По идее можно даже хоть 1000 створок сделать. Мало ли когда-нибудь понадобится подбить какие-то большие объёмы или что-то в этом роде. Тоже самое по сути можно сделать для стёкол и СМЛ. Они у меня уже выгружаются автокадом в эксель через Извлечение данных. Макрос можно написать так что мне нужно будет только нажать кнопку макроса и выделить нужный диапазон. Всё остальное сделается само. То есть уже даже не нужно копировать ничего никуда. А при правильной маркировки стёкол и прочих заполнений, можно добиться чтобы все файлы заполнений, включая створки и стёкла створок, делались одной кнопкой. Думаю на выходных займусь этим моментом. Это меня немного ускорит. А то я пипец закопался. Но да при этом мне не работается. По сути я уже во много разобрался. Сиди да делай. И делается главное если не отвлекаться всё достаточно недолго. За день витраж можно сделать. Можно даже с заполнениями. Можно даже под ключ. Начиная с кронштейнов и так далее. Но нет блин. Растягиваю дня на три. Потом ночью какой-нибудь усираюсь делаю.

Отвлекаюсь я конечно пипец как много. Последнюю неделю например повадился на пикабу сидеть. Даже уже порываюсь там зарегиться и сам начать писать. А по сути это таже соц сеть. Это никак не продвинет меня вперёд, ни в жизни, ни в работе. Да и залипаю там в основном на негатив всякий. Потому что самое горячее там с негативом и связано. Беспредел, драки, убийства, несправедливость и так далее. Накой хрен я это делаю сам не знаю. Итак понятно что люди мудаки. Не все конечно. Но в основном. По определению. А мне надо собой заниматься. Потому что я тоже тот ещё мудень. Никак не могу взять себя в руки. Работаю плохо. Дела не делаю.

Дристопердия походу дела от детролекса всё-таки. Не проходит никак. Рука пока так же. Уже 15 дней пью таблетки. Про упражнения забываю иногда. Хотя почти каждый день подтягиваюсь. Езжу к турнику или на велике или на роликах. Пока больше 6 раз никак не выходит. Было как-то 8 раз в один день. Блин а когда-то и 15 раз подтягивался. Турник надо бы в квартире повесить. Но квартира не моя. Я поначалу порывался тут что-то делать. А потом подумал, зачем мне всё это надо. Всё равно скоро съезжать.

vba, Здоровье, Программирование

Previous post Next post
Up