Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 403 След.
Как ускорить код, задающий параметры печати
 
testuser, твоё утверждение может быть верно для СОЗДАВАЕМЫХ файлов. А, насколько я понял (могу ошибаться), ТС меняет параметры СУЩЕСТВУЮЩИХ файлов, в которых могут стоять самые различные параметры печати.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Очередной элемент массива словарей заменяет все предыдущие на себя, Each new element of ArrayDictionary replaced all old elements with itself
 
Цитата
МатросНаЗебре: Так будет работать правильно.
благодарю!  :idea:
Сейчас протетстирую скорость 2ух подходов :D
UPD. По скорости — паритет. Тогда я выбираю вариант №2 (без посредников) ☺
Изменено: Jack Famous - 27.04.2024 15:31:42
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Очередной элемент массива словарей заменяет все предыдущие на себя, Each new element of ArrayDictionary replaced all old elements with itself
 
Приветствую!
Столкнулся со странным поведением массива словарей.
Добавление очередного элемента вызывает замещение предыдущих на него же.
Как обойти — показал, но, мне кажется, что заполнение словаря, как элемента массива будет дольше, ведь нужно постоянно обращаться к массиву.
Код
Почему так и как ещё можно побороть?
Судя по тестам, при Set aDic(1) = dic создаётся СВЯЗЬ между элементом массива и этим временным словарём, и, заполняя временный словарь, я сразу заполняю и элемент массива …
Изменено: Jack Famous - 27.04.2024 14:54:28
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Зачем сражаться за секунды выигрыша по скорости работы макроса?
 
Цитата
Счастливчик: Зачем ещё ускорять? Разве 3 секунды - это много?
иногда это просто интерес, какие подходы могут использоваться и/или какие условия должны быть соблюдены для большего ускорения.
Для кого-то 3 сек на 50 тыс строк это невероятно быстро, а для кого-то и 5 секунд на миллионе — это многовато.

Вот пример: я в надстройке на листе храню леммы (начальная форма) слов в виде пар "слово — лемма". Таких пар у меня 3,5 млн. Леммы используются в нескольких инструментах "нормализации" строк. Для работы каждого из них, все леммы нужно сначала загрузить в ОЗУ (в виде суперсловаря от bedvit'а). И вот, как вы думаете, что удобнее для пользователя — запустить нормализацию и уйти пить чай (3,5 млн / 50 тыс * 3 сек = 210 сек) или же подождать 3 секунды и получить результат? Вне зависимости от количества нормализуемых строк, леммы в словарь всегда грузятся ВСЕ. Или же пришлось бы сначала разбирать строки, собирая словарь слов, потом отбирать леммы только по этим словам и, только после этого, возвращаться к нормализации.

Скорость, которой достигаю я, обеспечивается глубокими исследованиями огромного количества вариантов.
А также библой bedvit'а  :D
Таким мало кто будет заниматься и часто — даже просто не поймёт, для чего это нужно. Ваша тема тому пример.
Изменено: Jack Famous - 27.04.2024 12:51:02
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
ВПР большого массива к большому массиву, Самы быстрый способ собрать данные между двумя большими массивами
 
voler83, ну, как-то вы прям необъективно подошли.
Да, в PQ можно путём [относительно] несложных манипуляций [практически только] одной мышью сделать N запросов для N листов с данными таблицы 1. Потом сделать запрос, объединяющий предыдущие N запросов в один. Потом сделать запрос ко 2ой таблице. Потом объединить 1ю и 2ю таблицу, причесать полученный результат и построить сводную на его основе.
Да, для человек, который полный ноль и в VBA, и PQ, вариант с PQ будет гораздо проще.

Но вы сильно преувеличиваете насчёт "будет летать на среднем ПК. Все делается за пару минут только мышкой".
Обновление запросов займёт от нескольких секунд до минут (зависит от множества факторов).
О "паре минут только мышкой" я написал выше.
Изменено: Jack Famous - 27.04.2024 12:09:25
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
ВПР большого массива к большому массиву, Самы быстрый способ собрать данные между двумя большими массивами
 
Starik19, поищите у меня, например (ссылка — не уверен, что сработает)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Зачем сражаться за секунды выигрыша по скорости работы макроса?
 
Цитата
nilske: теряется смысл в использовании  Option Explicit - можно просто её не использовать
я с вами спорить не буду (я не согласен, конечно), но вы так говорите, как будто с вас плату берут за использование этой опции. Это просто помощник, берущий на себя часть контроля и делающий это автоматически и безукоризненно.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
ВПР большого массива к большому массиву, Самы быстрый способ собрать данные между двумя большими массивами
 
Starik19, здравствуйте
Подтягивание или агрегация чего-то по ключу — это всегда история про словари/Dictionary (если мы про VBA) или их аналоги.
Штатным аналогом словарей является коллекция, но она сильно медленнее и не такая удобная.
Самый лучший вариант (для VBA) — использование суперсловаря/карты (UnOrdered Map) от bedvit. У него нет ограничения на количество ключей.
У штатного словаря такого ограничения [как бы] тоже нет, но замечено, что на 100 тыс ключей он начинает тормозить. Если использовать "обычные словари", то я бы сделал массив типа словарь (Dim aDic() As Dictionary), наполняя каждый элемент (словарь) до 80-100 тыс, и, при поиске искал бы в цикле по всем заполненным элементам массива словарей (словарям).

Так как словари это подключаемая штатная библиотека (Microsoft Scripting Runtime), я рекомендую раннее связывание (галочка в Tools → References) — скорость и удобство возрастут.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Зачем сражаться за секунды выигрыша по скорости работы макроса?
 
Цитата
МатросНаЗебре: в удобстве обратного вы меня не убедите
у меня аргумент один — удобно видеть все переменные в одном месте единым списком. Там их можно организовать по смыслу, убрать лишние, добавить новые.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Зачем сражаться за секунды выигрыша по скорости работы макроса?
 
Цитата
nilske: за такую  КРАСОТУ
про Conditional Compilation Arguments не знал, но, вроде, и не нужно это мне. Вообще, статья — полный скам и я бы такое никогда не посоветовал и, тем более, не назвал красотой.
     Улыбнулся, прочитав Это очень плохая практика – объявление всех переменных блоком в начале процедуры. Всегда лучше объявлять их непосредственно перед первым использованием.. Ну да, ну да  :D
Изменено: Jack Famous - 27.04.2024 10:02:42
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
ДР (ex HB)
 
Юрий М, с днём рождения, дорогой!
Крепкого здоровья тебе и финансового благополучия!
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Как ускорить код, задающий параметры печати
 
Цитата
Счастливчик: для этого нужно иметь хорошие знания в области макросов
достаточно нормально описать проблему. Вы создали тему Как ускорить код, задающий параметры печати и пишете Есть код, задающий параметры печати, но, при этом, приводите ВЕСЬ листинг с кучей строк, НИКАК не относящихся к параметрам печати.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Как ускорить код, задающий параметры печати
 
Цитата
Счастливчик: Добавил - код перестал работать
Цитата
ZVI: В начале кода добавьте эту строку:
ну, голову-то тоже не стоит выключать  :D Владимир имел в виду в начале/конце кода ВЫСТАВЛЕНИЯ ПАРАМЕТРОВ ПЕЧАТИ.
Цитата
Счастливчик: Подскажите, пожалуйста, как всё это сделать?
Вид — это кнопочки в правом нижнем углу перед ползунком масштаба. Их 3 и вам нужна первая/левая. Изменение вида и выбор принтера можете записать макрорекордером.
Изменено: Jack Famous - 26.04.2024 09:58:26
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Как ускорить код, задающий параметры печати
 
Счастливчик, здравствуйте
With и отключение событий, конечно, могут помочь, но я бы начал с замеров времени — действительно ли параметры печати замедляют…

Если они виноваты, то:
    • можно проверить, действительно ли ВСЕ эти параметры нужно задавать.
    • можно проверять параметр и не присваивать, если он уже нужный.
    • можно заменить Application.InchesToPoints() на заранее вычисленные значения или на свою, более шуструю, функцию.

Также, вполне возможно, что можно как-то задать шаблон, и, возможно, это будет быстрее, но тут не подскажу.
Изменено: Jack Famous - 25.04.2024 17:08:04
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Проверить содержит ли строка определённые символы, Формула проверка надежности пароля
 
alisa-gb, здравствуйте!
Цитата
alisa-gb: В своем выступлении о важности сложного пароля в современном цифровом пространстве он упомянул, что уже обладает знаниями, позволяющими взломать любой пароль, состоящий только из букв и цифр.
он, конечно, глубоко заблуждается.
Наличие спецсимволов, всего лишь, расширяет библиотеку [символов] для создания строки. Гораздо важнее длина пароля и его непредсказуемость, т.к. "Hello", "Password", многие другие и их вариации — "пробиваются" в 1ю очередь (даже сайты есть с такими подборками ненадёжных паролей).
Изменено: Jack Famous - 25.04.2024 15:15:07
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Есть толковый форум по Google Sheets и AppScript?
 
У Дмитрия Шербакова есть ветка по гуглолистам.
У друзей-соседей есть ветка.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Нанесение точек по координатам на рисунок карты на листе Excel, Требуется оффлайновый инструмент
 
deviceik, здравствуйте
Я такое в автокаде делал. Не уверен, что такое вообще возможно в Excel при текущих условиях.
Не претендую.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
При открытии двух файлов их значения становятся одинаковыми
 
djackson, здравствуйте.
Цитата
djackson: Проблему решить пока не удалось.
если вы ссылаетесь на ОДНО — откуда быть РАЗНОМУ результату???
Преобразуйте в значения, отключайте обновление ссылок — меняйте логику.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Можно убрать пробел только в конце значения ячейки?
 
Цитата
Jack Famous: Не слушайте бота  Savan  — чушь несёт (чат жпт работает или подобная шляпа с кривым запросом).
ещё и тихонечко заменил "свои" потуги на 1ый вариант от _Boroda_  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
MsgBox в Офис Р-7
 
Цитата
testuser: Ирония судьбы конечно, если в Р7/Only не завезли события
кнопочки рулят  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Предложение проекта
 
Msi2102,  :D  да уж
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Предложение по послаблению правил при создании первых 3 тем
 
Sanja, я — с вами ♥
Цитата
evgeniygeo: Наверное, в целом, я хочу чтобы мир был добрее
"за всё хорошее и против всего плохого" ♥
Изменено: Jack Famous - 18.04.2024 14:15:26
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Предложение проекта
 
Msi2102, неписанное  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Предложение проекта
 
Обоснование, почему беру другие заказы:
Мои контакты переданы [реальному] заказчику.
Напишет ли и когда — неизвестно.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Разработка небольшой надстройки для упрощения сохранения файлов
 
Пишу в личку
В работе
Изменено: Jack Famous - 18.04.2024 14:11:20
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Можно убрать пробел только в конце значения ячейки?
 
DanKZ, здравствуйте
Не слушайте бота Savan — чушь несёт (чат жпт работает или подобная шляпа с кривым запросом).

Формулой: =ЕСЛИ(ПРАВСИМВ(ячейка;1) = " "; ЛЕВСИМВ(ячейка; ДЛСТР(ячейка) - 1; ячейка)
VBA: cell.Value = RTrim$(cell.Value)
Изменено: Jack Famous - 18.04.2024 13:02:10
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Предложение по послаблению правил при создании первых 3 тем
 
Цитата
evgeniygeo: думаю, что телеге проиграет
покажите, пожалуйста, канал в телеге, более популярный, чем этот сайт. И скажите, как вы определили, что он более популярный?
Лично для меня, ЛЮБОЙ канал будет проигрывать сайту — чисто из-за формата. Одно дело, новости читать и совсем другое — копаться в темах, кодах и примерах файлов.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Вставить данные на лист Excel без преобразования (xlSet)
 
Цитата
bedvit: А про то, о чем ты говоришь - я без кода не понимаю.
1. отфильтруй диапазон
2. вставь в него массив размером с ВИДИМУЮ часть
3. сними фильтр
4. посмотри, вставилось ли
5. повтори всё с умной таблицей
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Вставить данные на лист Excel без преобразования (xlSet)
 
bedvit, отфильтруй и повтори. Также, с умной таблицей.
Цитата
bedvit: У меня ОБЫЧНАЯ  выгрузка все заполняет
Range("a4:a8") = ArrV1
просто великолепный пример  :D
Изменено: Jack Famous - 18.04.2024 10:41:31
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Вставить данные на лист Excel без преобразования (xlSet)
 
Цитата
bedvit: А может быть по другому? Работает так же, как и обычная вставка - вставляется в указанный диапазон, неважно скрыт он или нет. Штатная работает так же.
вы, молодой человек, путаете ВСТАВКУ в ячейки и ВЫГРУЗКУ массива.
Твой инструмент гораздо ближе к ВЫГРУЗКЕ (практически ей и является), а у неё заполнение скрытых ячеек, как раз, не осуществляется.

И вообще — почему опять такое неуважение к конечным пользователям? Какого лешего нам опять нужно что-то додумывать и домысливать?
Сложно написать "в отличие от обычной выгрузки массива на лист, НЕ игнорирует скрытые ячейки и успешно в них вставляет"???
Изменено: Jack Famous - 18.04.2024 10:31:53
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 403 След.
Наверх