wb.Sheets(1).Activate
wb.Sheets(2).Activate
26.04.2025 11:38:33
Подниму старинную тему, для оценки опытными - встретился ещё компактный и универсальный пример функции парсинга JSON в VBA:
Автор отмечает быстроту работы алгоритма, и помимо прочего, возможность отфильтровывания необходимых элементов в массив (через *) Особенность - поступающие данные JSON должны быть валидны, результат выдается как есть - преобразования типов данных функцией и экранированных символов - не производится. В комментах, в первом сообщении - дополнительные доработки пользователей этого макроса (Function ParseArr(key$) |
|
|
15.02.2025 19:16:04
6. При прокрутке Таблицы вниз заголовки столбцов (A, B, C…) меняются на названия полей, т.е. уже можно не закреплять шапку диапазона как раньше |
|||
|
26.12.2024 21:15:36
Miralex,
похоже, потребуется автоматизация через Adobe Acrobat Pro |
|
|
22.12.2024 17:18:24
Sanja,
![]() В формуле с ВПР, внутри фигурных скобок видно ТРИ полных пары (1:26;2:36;3:41) и два дополнительных значения (0;...;4)
|
||||
|
21.12.2024 22:13:20
Sanja,
![]() В этих формулах используются фигурные скобки, но вся же запись - не "формулы массива"? С ПРОСМОТРом, через Мастер формул, более-менее понятно (четыре элемента в векторе), а почему именно так (пять значений..) конструируется формула с ВПР? А то что-то подобных примеров - не встречалось.. |
|||
|
16.12.2024 19:00:29
AlienSx, здорово - солидный, структурированный код!
![]() Но при прогоне на реальных файлах обнаружилась проблема, приводящая к ошибкам и пустым строкам в итоговом файле.. Как будет лучше дополнить код обработчиком подобных ошибок? |
|
|
16.12.2024 09:10:49
Просьба посоветовать, как правильно создать запрос в Power Query для извлечения данных из большего количества однотипных XML-файлов. Проблема заключается в том, что структура XML - "древовидная", данные в подтегах в <SectorList>, <FreqList> и <Condition> - "разветвляются", что при простом импорте приводит к "распуханию" итоговой таблицы, когда итоговое количество строк значительно превышает количество файлов… Чтобы этого избежать, хотелось бы сделать так, чтобы все данные из повторяющихся тегов объединялись в одну соответствующую ячейку - например, через ";” Для последующего анализа также полезно подсчитывать число таких тегов (например, по SectorID, FreqID, Position) и выводить их количество в соответствующие колонки. Просьба помочь с M-кодом, т.к. похоже, через интерфейс редактора PQ такого уже не сделать.. |
|
|
25.10.2024 20:51:19
matfaker,
Есть и совсем простой (ленивый) способ - "Мгновенное заполнение": Правда, надо применять с осторожностью, но на представленном примере - срабатывает ![]() |
|
|
23.09.2024 19:56:21
levkaster97, как вариант - через CSV-файл:
|
|
|
26.08.2024 07:36:09
В общем, удалось разобраться - преодолевать защиту не понадобилось, нужно было передавать в Заголовках ApiKey, возвращаемый сайтом - он постоянный (отчего так сейчас и насколько продлится - вопрос, но - работает))
Успелось все вовремя ![]() |
|
|
17.08.2024 21:09:11
Feltor,
На тему - сегодняшняя статья: Но на сабжевый вопрос - направляют на |
|
|
31.07.2024 19:07:30
После анализа по F12 и обращения на
Изменено: |
|
|
30.07.2024 19:20:30
Нужно периодически проверять перечни машиночитаемых доверенностей (МЧД) на сайте ФНС РФ:
Сейчас это делается вручную, но хотелось бы автоматизировать процесс. Сделана попытка реализации через стандартный XMLHTTP, однако все дело стопорится на защите этого сайта... Есть ли возможность возможность её обойти и продолжить передавать запросы/получать данные методами Msxml2.ServerXMLHTTP/WinHttp.WinHttpRequest.5.1/Msxml2.ServerXMLHTTP ?
|
|||
|
05.05.2024 16:41:41
Евгений Смирнов,
Благодарю! Только немного подправил под себя - т.к. используется умная таблица, то объявил диапазон как ListObjects("Таблица1").ListColumns("e-mail").DataBodyRange, чтобы счётчик - с единицы Уточнение по коду - вызов функции удаления пробелов VBA.Trim обязательно делать с полным указанием (Application.Trim/Application.WorksheetFunction.Trim)? Вроде и без них - работает? Павел \Ʌ/, С новыми функциями - здорово, но в использовании - только 16й Однако, как выясняется, в новых версиях Excel и команды соответствующее в VBA ещё появляются: |
|
|
05.05.2024 11:36:54
Требуется периодически рассылать данные по соответствующим адресам электронной почты. Сейчас эта задача вручную решается пользователями так – копируется столбец с e-mail в Word, делается замена разделителя ";" на абзац, увеличившийся список в Excel через "Удалить дубликаты" делается уникальным, и затем снова в Word делается замена абзаца на ";" и итоговый список используется для отправки письма в Outlook адресатам без дублей. А как правильнее решить эту задачу в VBA? |
|
|
14.02.2024 20:42:21
БМВ, спасибо, поизучаю Скорее важнее не производительность, а компактность (и наглядность) в коде. Возможно ли, например, элементы (пары) массива задавать последовательно, например, через запятую? И дополнительно - эта задача содержит описания связей "один-к-одному". Потом понадобится описывать региональную структуру (федеральное и областное деление) типа "многие-к-одному" - несколько кодов к одному названию. Каким методом лучше это делать в VBA? Пока - думаю про Select Case, записывая нужные группы кодов через запятую. |
|||
|
14.02.2024 19:20:05
Есть таблица с перечнем цифровых кодов регионов РФ, и названиями соответствующих регионов, около 80 пар. Сейчас данные (регионы) из этой таблицы извлекаются формулами (ВПР по коду), но уже желательно перевести такую работу в VBA.
Как лучше это реализовать и только - программно? С помощью Select Case будет слишком громоздко, а как сделать это в программном коде нагляднее и лаконичнее? Например массивами, просто перечислением этих пар? Или попробовать Scripting.Dictionary? |
|
|
26.12.2023 21:16:14
Кстати, из отмеченного - обнаружилось, что при дальнейшей пересылке переименованных файлов *.msg через клиент Outlook, имена приаттаченых файлов обретают свой прежний вид!
![]() Поэтому приходится их архивировать, чтобы получатели, распаковав, видели новые имена и не удивлялись обыденности при простом вложении ![]() |
|
|
24.12.2023 11:05:45
После подписки на сервис ежедневных сообщений, необходимо обрабатывать поступающее в Outlook - определять содержащийся в теле каждого письма номер, с последующим анализом полученного и пересылкой отобранных групп писем, как вложений, конкретным адресатам.
Пока задача решается так - все письма за сутки копируются в сетевую папку и затем обрабатываются адаптированным макросом в Excel. Но все письма в приходящей рассылке имеют одинаковую "Тему", и весьма желательно переименовывать сохранённые *.msg в извлечённый регуляркой номер (myStr2) И дополнительно - в каждом письме находится только один искомый номер - т.е. не обязательно в регулярке перебирать всю коллекцию For Each myStr1 In myObj ? И в завершение, обнулять объект RegExp требуется?
|
|||
|
12.02.2023 20:51:07
Alien Sphinx,
Присвоил своей таблице (через диспетчер имен) название Source, но другая ошибка синтаксиса - первая скобка, "Ожидается токен Equal" Другие подсказки пока не знаю, как применить ![]()
|
|||
|