Проблема VBA с SaveAs после перехода на Office 365 - PullRequest
0 голосов
/ 13 июля 2020

У меня возникли проблемы с моим макросом, который был написан в Excel 2010 после перехода на Office 365. Короче говоря, у меня есть макрос, хранящийся в центральном файле на общем диске, который открывает несколько файлов из разных папок SharePoint, вставляет данные в каждый и сохраняет. Для этого я использую:

Set WB = Workbooks.Open (filename:=path, UpdateLinks:=0)
[some code]
WB.SaveAs Filename=:path

Это было прекрасно в Excel 2010, теперь я получаю

RunTime Error 1004.

Кроме того, когда я полностью останавливаю макрос после его сбоя в методе SaveAs и пытаюсь сохранить вручную - весь Excel сразу вылетает и перезапускается. Я пробовал искать в Google различия между поколениями excel в этом контексте, но ничего не нашел. Я также попытался добавить больше атрибутов - как для открытия, так и для методов сохранения файлов, например readonly:=false, ignorereadonlyrecommendation:=true, file format:=xlworbookdefault et c, безрезультатно. Я также заметил, что при сбое макроса файл, который должен был быть сохранен и закрыт, находится в ReadOnly, несмотря на включение readonly:=false в метод Workbooks.open - как будто это было полностью проигнорировано ..

Любая помощь приветствуется, этот инструмент является ключевым в моей повседневной работе, и до сих пор переход на новый Excel сделал все еще хуже: [

1 Ответ

0 голосов
/ 13 июля 2020

Хорошо, я нашел ответ - по-видимому, он был связан с открытием файлов с сервера (часть Sharepoint), и поэтому необходима новая строка кода:

ActiveWorkbook.LockServerFile

Я никогда не использовал что раньше, работая в Excel 2010, даже не знал, что он существует до сих пор

...