#excel #vba
#excel #vba
Вопрос:
Раньше я время от времени получал эту ошибку, но теперь я получаю ее каждый раз, когда запускаю свой макрос:
Ошибка времени выполнения ‘-2147417851 (80010105)’: метод ‘SaveAs’ объекта ‘_Workbook’ не удался
По сути, то, что я пытался сделать, это скопировать данные из большой личной книги Excel в книгу Excel в Sharepoint. Я делаю это с помощью третьей вспомогательной таблицы. Эта вспомогательная электронная таблица (установленная как ActiveWorkbook) успешно открывает обе таблицы Excel и выполняет некоторую проверку ошибок перед копированием и вставкой данных. Но теперь он не будет сохранен в Sharepoint… вот блок кода, на котором останавливается отладчик:
У меня есть вспомогательная книга, установленная в качестве активной книги. Я попытался установить SPwkbk в качестве активной книги, но это приводит к сбою Excel.
Я добавил тег FileFormat := 1 для файла .xlsx в Sharepoint, но, похоже, это не возымело никакого эффекта.
Я думал о сохранении на одном листе за раз (personal worksheet и Sharepoint имеют одинаковые имена для листов), но подумал, что это сделает программу медленнее, чем она уже есть…
Application.DisplayAlerts = False
SPwkbk.SaveAs Filename:=SPwkbkPath, AccessMode:=xlExclusive, _
ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
SPwkbk.Close
myWkbk.Close SaveChanges:=False
Я знаю, что он копирует и вставляет правильно, как это работало раньше… но я не понимаю, что мешает его сохранению, даже если нет человека, редактирующего / просматривающего файл в Sharepoint. Что может быть причиной этого?
Комментарии:
1. Этот код не копирует и не вставляет. Он сохраняет файл с
SaveAs
помощью метода (нажмите для ссылки.) Просто предположение: возможно, сохранение в «эксклюзивном режиме» связано с проблемой. Кроме того, не рекомендуется отключатьDisplayAlerts
, пока все не будет отлажено. Помимо этого, вам нужно будет выяснить / уточнить, что вы пытаетесь сделать, прежде чем кто-либо сможет помочь.
Ответ №1:
В конце вам нужно указать формат файла, я думаю, именно поэтому выдает ошибку.
ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlWorkbookNormal
.SaveAs Application.UserLibraryPath amp; AddinName, 55 'file type for addins extension