попробую поднять тему. Поиск находит некоторые темы про "двустороннюю печать", но ответа на свой вопрос найти не могу. Ткните носом, плз, куда смотреть?
Копирование свойств выбранного принтера на разные листы
Копирование свойств выбранного принтера на разные листы
Копирование свойств выбранного принтера на разные листы
Совместимость .XLSB в разных версиях Excel?
24.04.2025 15:33:33
Случилось странное. На работе начал писать макрос в Excel 2007. Вечером забрал xlsb-файл домой, поработал с ним в Excel 2021, и отправил себе обратно на рабочую почту. Утром, на работе, обнаружил что файл пришел битый, не открывается (обнаружено ... содержимое... восстановить? после восстановления - полностью поломанный файл - не хватает главного листа, куча каких-то левых листов, полностью слетевшее форматирование и т.п.). Грешил на майл.ру, но не поленился - сгонял домой, и привез файл на флешке. То же самое.
На соседней машине поднял офис 2021, убедился что файл там открывается нормально, пересохранил в .xlsm, перенес на рабочий комп - и всё норм, работает в 2007. Вопрос!!! Чем xlsb в 2021 офисе отличается от xlsb в 2007? Или что ещё могло стать причиной такого глюка?
Изменено: |
|
|
условное форматирование таблицы из VBA, Глюк Excel?
условное форматирование таблицы из VBA, Глюк Excel?
21.02.2025 12:01:31
Дмитрий(The_Prist) Щербаков, точно, помогло, спасибо.
Но смысл косяка остался где-то за границей понимания. Видимо придется просто запомнить. |
|
|
условное форматирование таблицы из VBA, Глюк Excel?
21.02.2025 08:49:15
Приветствую, господа.
Столкнулся с непонятным поведением excel, надеюсь кто-то окажется внимательнее и поймет что происходит. Итак. Есть макрос, выполняющий определенные вычисления в таблице. На основании полученных итогов таблица должна быть раскрашена. Чтобы точнее прицелится, ввожу в Immediate команду:
Дописываю в конце макроса такой код:
Вручную исправляю эту формулу, вся таблица раскрашивается как надо. Внимание, вопрос! В какой момент выражение, вычисляющееся в "$P6" вдруг выдало "$P8" ????
Изменено: |
|||||
|
range в массив, туплю
04.12.2024 13:33:21
Всего лишь:
И обратно массив сливается одной строчкой:
|
|||||||
|
Промежуточные итоги, subtotal
Поиск текстовых данных по разным столбцам, Нужно найти определенные слова в трех столбцах и в соседнем столбце присвоить, значения, которые за этими словами закреплены
range в массив, туплю
range в массив, туплю
range в массив, туплю
18.11.2024 17:09:35
Изменено: |
|||
|
range в массив, туплю
range в массив, туплю
18.11.2024 16:24:40
Коллеги, прошу подсказку. я то ли туплю, то ли путаю VBA с другим языком.
Задача: загнать range в массив. Вроде бы тривиально: dim arr arr = [A1].resize(5).value но на выхлопе получается двумерный массив (5,1), то есть обращение типа msgbox(arr(3)) даст ошибку "subscript out of range", а нужно писать msgbox(arr(3,1)). А можно ли одним оператором создать из одномерного range одномерный массив? Или для этого придется обходить заданный range циклом?
Изменено: |
|
|
суммирование макросом, нужен быстрый алгоритм
31.05.2024 06:11:29
Да, так работает. А не получается вот так:
Приходится делать через промежуточный массив:
|
|||||||
|
суммирование макросом, нужен быстрый алгоритм
29.05.2024 12:42:52
Это мощно. Переписал свой макрос со словарем. Мало того что он работать стал на порядок быстрее, так ещё и код в три раза компактнее получился:
Может и не идеально, но скорость меня уже устраивает. То что раньше работало до 10 минут, выполняется в пределах 3-5 секунд. Ура. Благодарю за подсказку sokol92, БМВ, Jack Famous, А не подскажете ли ещё, если в словарь добавить массив, как адресоваться к его элементам? У меня не получилось. Например: dic1.Add key1, array(10, 20, 30) msgbox Dic1.Item(key1)(1) Результат - 0.
Изменено: |
|||
|
суммирование макросом, нужен быстрый алгоритм
27.05.2024 19:02:58
Привет, коллеги. Прошу помочь с алгоритмом, теоретической подготовки не хватает.
Суть в следующем. Есть книга с двумя (на самом деле гораздо больше) листами. На одном из них (назовем его Лист1) несколько десятков или даже сотен тысяч записей, которые постоянно обновляются и пополняются копированием-вставкой из внешнего источника. Данные на этом листе не упорядочены, и содержат графы "дата", "ID", некая "сумма", и много всего прочего. На другом листе (Лист2) нужно макросом сформировать типа сводного отчета, в котором данные первого листа подсуммируются по "дате" + "ID". Есть рабочее решение, но оно слишком медленно, поэтому и прошу подсказки. Суть моего макроса состоит в том, что содержимое обоих листов считывается в два массива, потом двумя вложенными FOR даные суммируются (внешний for пробегает больший массив1, а внутренний накапливает в меньшем массиве2 суммы по заданным условиям), затем меньший массив заливается обратно на Лист2 конструкцией типа cells(...).resize(...).value = arr. Этот макрос работает несколько минут, что очень долго, учитывая прочие условия задачи. Со сводными таблицами знаком, в данном случае это неприменимо, потому что Лист2 имеет фиксированную разметку - это достаточно сложный отчет, который нужно заполнить цифрами по одной кнопке, нажатой пользователем. С функцией СУММЕСЛИМН тоже знаком, но если её использовать на этом объеме данных, перерасчет всей книги на шести ядрах core i5-8500 c 16GB памяти занимает почти 2 минуты, что также недопустимо, т.к. перерасчет будет запускаться на каждое редактирование, фильтрацию и т.п. (application.calculation =xlcalculationmanual не предлагать, противоречит прочим неозвученным условиям) В общем, требуется именно макрос, который будет работать по кнопке, и по возможности "мгновенно". Накидайте пожалуйста идей или ссылок на описание, какой алгоритм суммирования по нескольким условиям самый быстрый. С реализацией в VBA буду разбираться сам. Спасибо.
Изменено: |
|
|