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

Страницы: 1
Автоматизация Excel: open-source набор для бизнес-задач, GitHub репозиторий с open source инструментами для Excel
 
Ну, про GitHub это отдельная песня :)  это платформа, которая много чего умеет, поэтому важно понять что именно нужно - можно, например, через perplexity.ai на русском языке вопросы про него позадавать - весьма неплохо отвечает. Я тут больше про автоматизацию Excel пообщаться хотел ;)  
Автоматизация Excel: open-source набор для бизнес-задач, GitHub репозиторий с open source инструментами для Excel
 
Приветствую, коллеги!

Хочу представить свой небольшой проект на GitHub excel-helpers — коллекцию готовых решений для автоматизации бизнес-задач в Excel.

Update: добавил русский readme-файл

Здесь собраны инструменты (VBA код, addin, просто таблицы без кода, которые, например, были удобны для конкретных задач) которые я разрабатывал для своих реальных проектов, и которыми пользуюсь каждый день. Решил собрать всё в одном месте и немного структурировать.


Лучший способ что-нибудь улучшить - обсудить со знающими людьми - поэтому любые Ваши идеи и предложения очень приветствуются!


Важно: весь код открыт (GPL 3.0 License) — и Вы можете свободно его использовать в ваших любых проектах.


Что внутри?

• Calc_Tables Add-In — удобный инструмент для анализ сценариев «Что если» с перебором сразу нескольких параметров, и подбора искомых значений. Удобен например для финансовых моделей с визуализацией результатов.

• Decision making tool — система поддержки принятия решений на основе экспертных оценок с учетом весов мнений экспертов.

• VBA OmniLogger — гибкое логирование сообщений и ошибок в txt, csv, json, окно Immediate или прямо на лист Excel.

• Dynamic GANTT — генерация диаграмм Ганта с автообновлением при изменении данных.

• VBA Profiler — инструмент, позволяющий найти где именно "зависает" ваш медленный VBA код.


• Snippets v1.0 — 40+ VBA функций для работы с файлами, API Windows, JSON и др.

• и многое другое - добавляю решения по мере их появления.


Для кого это?

• Новички и просто пользователи со своими ежедневными задачами — в разделе Wiki есть инструкции со скриншотами (например, как настроить Decision making tool для выбора поставщика) по всем выложенным инструментам.

• Разработчики — готовые сниппеты ускорят рутину вроде парсинга текстовых файлов или работы с Outlook.

• Тестеры — буду благодарен найденым ошибкам и предложеным улучшениям.


Как присоединиться к обсуждению?

Discussions или Issues на GitHub— там можно:

• Предложить новый инструмент (например, вывод грфиков из Excel в PowerPoint).

• Обсудить рефакторинг кода — что-то реализовано в виде классов, что-то в виде разрозненных функций, буду рад обсудить Ваши предложения по оптимизации.


Также я и складирую там свои фрагменты кода (snippets). Функции собраны в файлы по их назначению:

Файлы:
1. Доступ к объектам Excel - функции и процедуры для упрощения доступа к объектам Excel, таким как рабочие книги, листы, строки, столбцы и т. д.
2. Буфер обмена - процедуры для работы с буфером обмена
3. Файлы и папки - диалоги/проверки/загрузка и сохранение данных в/из файлов
4. Логирование - запись событий в таблицу Excel с помощью VBA
5. Упрощение работы с VBA - поддержка функций и процедур для упрощения кодирования на VBA
6. Работа с текстом - процедуры для работы с текстом, хранящимся в переменных String и/или массивах
7. Windows API - функции из Windows API (пока там только одна функция – Sleep(ms), но очень уж полезная)

Вот лишь некоторые из наиболее мной часто используемых функций:
  • enableFastCode() - Включает/выключает режим автообновления Excel - ЗНАЧИТЕЛЬНО ускоряет вычисления, особенно на большом количестве обращений к ячейкам таблиц!
  • incr() - Удобная замена строк типа i=i+1; j=j-1; t=”My name is “: t = t & “Vasya” – будет incr i,1; incr j,-1; incr t, “Vasya”
  • getCellValueWithoutOpeningFile() - Получение значения ячейки без открытия внешнего Excel-файла
  • findRow() - Находит первую строку в целевом диапазоне с теми же значениями, что и в исходной строке, для указанных столбцов
  • lastColumnNameInTheRow() - Найти имя столбца последней непустой ячейки в строке
  • chooseFileOrFolder() - Открытие диалога для выбора файла или папки
  • getFilesList() - Получить список указанных файлов из выбранной папки, например только *.docx и *.xlsx
  • removeFromArray() - Удаление элемента с указанным индексом из динамического массива
  • parseRecords() - Парсинг частей целевого текста между маркерами в массив для таблично-подобного текста (например, веб-страниц)
  • hasOneOfKeywords() - Проверяет, содержит ли текст одно из ключевых слов, хранящихся в массиве
Важно: репозиторий на английском, но Chrome/Edge отлично переводят страницы. Если что-то непонятно — пишите здесь, обязательно объясню.


Надеюсь, эти инструменты будут Вам полезны. Также буду рад обсудить новые идеи.
Изменено: sergey_frolov - 23.04.2025 10:03:01
Страницы: 1
Наверх