Относительный путь к вложенному документу при использовании основного документа для обеспечения совместной работы с несколькими пользователями на нескольких компьютерах
8/21/2018

дорогие все

У меня есть несколько основных документов с целым рядом вложенных документов. Они хранятся на общем диске (например, Dropbox/NextCloud/...) для совместной работы с другими пользователями над этими документами. К сожалению, ссылки на связанные файлы указаны по абсолютному пути. Когда мы открываем Основной документ на другом компьютере/пользователе и пытаемся развернуть вложенные документы, мы получаем сообщение об ошибке, что вложенные документы не могут быть найдены.

Так что вместо

файл:///Пользователи/Ральф/Abc/Xyz/123/02- Arbeitshefte/00-Дополнительные документы/02-W&P+Pers.Motivation.docx Я хотел бы иметь файл://../00-Sub-Документы/02-W&P+Pers.Motivation.docx

в качестве файла - ссылка на вложенные документы для обеспечения совместной работы. Я, конечно, могу изменить структуру, чтобы упростить задачу, например. поместить все в одну папку, чтобы ссылка могла быть чем-то вроде file://02-W&P+Pers.Motivation.docx

Надеюсь, вы понимаете, что я имею в виду, и могли бы помочь мне в этом вопросе.

С наилучшими пожеланиями, Ральф

Правильный Ответ

Kristy Gulgowski
12/24/2021

Я согласен с тем, что сохранение файлов в форме основного документа в конечном итоге приведет к потере данных. Они безопасны в использовании, если вы соберете основной документ для печати, а затем выбросите его. Вот макрос, который автоматизирует этот процесс. Предполагается, что все документы компонентов находятся в одной папке: Вложенная сборка MasterDocument() Dim Вложенный файл$, Путь к папке$, Шаблон$ Счетчик Dim и Dim Папки Как файловый каталог Dim Obookmark Как закладка Dim OTOC Как Tableofcontents ' Создайте динамическую переменную массива, а затем объявите ее начальный размер Dim DirectoryListArray() Как строку ReDim DirectoryListArray(1000) Шаблон$ = ActiveDocument.Прикрепленный шаблон.Путь и применение.Разделитель путей и активный документ.Прикрепленный шаблон.Имя" Перебирает все файлы в каталоге с помощью функции Dir$ Набор папок = Приложение.Каталог файлов(msoFileDialogFolderPicker) С офолдером.AllowMultiSelect = Ложь, Если .Показать <> 0, Затем Путь К Папке$ = .SelectedItems(1) Еще Один Переход Заканчивается, Если Заканчивается Приложением.Обновление экрана = Ложный вложенный файл$ = Каталог$(Путь к папке$ и приложение.pathSeparator & "*.*") Сделайте, пока поддокфайл$ <> "" DirectoryListArray(Счетчик) = Поддокфайл$ Поддокфайл$ = Каталог$ Счетчик & = Счетчик& + 1 Цикл "Сбросит размер массива без потери его значений с помощью Redim Сохранить ReDim Сохранить DirectoryListArray(Счетчик& - 1) WordBasic.sortarray DirectoryListArray() в активном окне.Активная панель.Просмотр.Тип = wdOutlineView активное окно.Просмотр = Выбор wdMasterView.Единица Измерения конечного Ключа:=WDSTORY Для x = От 0 До (Счетчик& - 1), Если Числовой (Слева(Каталог(x), 1)), Тогда Полное имя$ = Путь к папке$ & Приложение.Документы pathSeparator и DirectoryListArray(x).Откройте Имя файла:=Полное имя$, Подтвердите преобразования:=False С Документами(Полное имя$) .Прикрепленный Шаблон = Шаблон$ Для Каждой Метки oBook В Документах (Полное Имя$).Закладки оБоукмарк.Удалите следующую метку в книге.Закрыть SaveChanges:=Истина Заканчивается Выбором.Диапазон.Вложенные документы.Добавьте Имя Файла:=Полное Имя$, Подтвердите Преобразования:=Конец False, Если Следующий x Для Каждого OTOC В ActiveDocument.Таблицы содержимого OTOC.Обновите Следующее активное окно OTOC.Активная панель.Просмотр.Тип = Приложение wdPrintView.Обновление экрана = Истина EndSub: Конец Sub

Помогло людям

Похожие вопросы

641

Просмотров

4

Ответов