Лучший способ сделать контроль версий для MS Excel - PullRequest
160 голосов
/ 25 сентября 2008

Какие системы контроля версий вы использовали с MS Excel (2003/2007)? Что бы вы порекомендовали и почему? Какие ограничения вы обнаружили в вашей системе контроля версий с самым высоким рейтингом?

Чтобы представить это в перспективе, вот несколько вариантов использования:

  1. контроль версий для модулей VBA
  2. над таблицей Excel работают несколько человек, и они могут вносить изменения в одну и ту же таблицу, которую они хотят объединить и интегрировать. Эта рабочая таблица может содержать формулы, данные, диаграммы и т. Д.
  3. пользователи не слишком техничны, и чем меньше систем контроля версий, тем лучше
  4. Пространство ограничено. В идеале сохраняются только инкрементные изменения, а не вся электронная таблица Excel.

Ответы [ 25 ]

0 голосов
/ 05 ноября 2018

Вот проект GitHub, который решает только пункты 1. и 4. вопроса ОП: https://github.com/ColmBhandal/VbaMisc. Это решение VC только для модулей VBA. Его можно легко адаптировать к любому проекту, реплицируя структуру проекта, видимую на GitHub, и добавляя любые модули, которые нужно поместить в VC, в whiteList, определенный в модуле ExportImport. Этот модуль управляет экспортом и импортом белого списка модулей VBA, возможно, включая самого себя. См. Репозиторий GitHub для получения инструкций по использованию.

0 голосов
/ 05 января 2012

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

Примечание: это книга с поддержкой макросов, для загрузки которой необходимо войти на сайт (можно использовать OpenID)

Весь код разблокирован.

Rev Control Spreadsheet

0 голосов
/ 06 июля 2012

Возможно, вы пытались использовать Microsoft Excel XML в zip-контейнере (.xlsx и .xslm) для контроля версий и обнаружили, что vba хранится в vbaProject.bin (который бесполезен для контроля версий).

Решение простое.

  1. Откройте файл Excel с помощью LibreOffice Calc
  2. В LibreOffice Calc
    1. Файл
    2. Сохранить как
    3. Сохранить как тип: электронная таблица ODF (.ods)
  3. Закрыть LibreOffice Calc
  4. переименуйте расширение файла нового файла из .ods в .zip
  5. создать папку для электронной таблицы в области, поддерживаемой GIT
  6. распакуйте zip в папку GIT
  7. совершить GIT

Когда вы повторите это со следующей версией электронной таблицы, вы должны будете убедиться, что файлы папки точно совпадают с файлами в zip-контейнере (и не оставляйте удаленные файлы позади).

0 голосов
/ 19 февраля 2019

Я нашел очень простое решение этого вопроса, которое отвечает моим потребностям. Я добавляю одну строку в конец всех моих макросов, которые экспортируют файл *.txt со всем кодом макроса при каждом запуске. Код:

ActiveWorkbook.VBProject.VBComponents("moduleName").Export"C:\Path\To\Spreadsheet\moduleName.txt"

(найдено в Учебниках Тома , которые также охватывают некоторые настройки, которые могут вам понадобиться для работы.)

Поскольку я всегда запускаю макрос всякий раз, когда работаю над кодом, я гарантирую, что git примет изменения. Единственная раздражающая часть заключается в том, что если мне нужно оформить более раннюю версию, я должен вручную скопировать / вставить из *.txt в электронную таблицу.

0 голосов
/ 04 января 2012

Существует также программа под названием Beyond Compare , которая имеет довольно хорошее сравнение файлов Excel. Я нашел скриншот на китайском, который кратко показывает это:

Beyond Compare - comparing two excel files (Chinese)
Исходный источник изображения

Существует 30-дневная пробная версия на их странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...