VBA – Ошибка выполнения 1004 – Документ не может быть сохранен

Фактическая ошибка, которую я получаю, – это

«Ошибка времени выполнения« 1004 »:

Документ не сохраняется. "

а затем, когда я ударил debug, он доставит меня к линии

ActiveWorkbook.Save 

У меня есть гигантский макрос VBA, с которым у меня проблемы. Макрос запускается в гигантской книге с ~ 75 или около того листов данных. Он начинается с первой страницы, читает имя рабочей таблицы, чтобы определить, какая модель будет выполняться на данных, создает новую книгу, выполняет вычисления и создает графики, а затем сохраняет книгу, прежде чем перейти к следующему листу ввода. Все это прекрасно работает, за исключением сохранения новой книги. Есть 4 разных модели, которые я запускаю, и 2 из них сохраняются правильно. Однако для остальных 2 я сталкиваюсь с этой ошибкой в ​​любое время, когда я пытаюсь их сохранить.

 OutputFolder = "location of output file" If Dir(OutputFolder, vbDirectory) = "" Then MkDir OutputFolder End If Workbooks.Open Filename:="location of input file" '(this is a path to the file) Workbooks.Open Filename:="location of lookup table" '(another path) number_of_reports = Workbooks(InputFile).Sheets.Count Workbooks(InputFile).Activate For i = 1 To number_of_reports ReportID = ActiveSheet.Name 'get 3 part ID ID_Lookup = Split(ActiveSheet.Name, "-") 'seperate into individual parts Workbooks("LookupTable").Activate 'use lookup table Sheets("CompanyLookup").Select CompanyID = Range("A" & (ID_Lookup(0) + 1)) CompanyName = Range("B" & (ID_Lookup(0) + 1)) Sheets("CategoryLookup").Select CategoryID = Range("A" & (ID_Lookup(1) + 1)) CategoryName = Range("B" & (ID_Lookup(1) + 1)) Sheets("ModelLookup").Select ModelID = Range("A" & (ID_Lookup(2) + 1)) ModelName = Range("B" & (ID_Lookup(2) + 1)) Workbooks(InputFile).Activate y = Range("B1").End(xlToRight).Column Workbooks(InputFile).Sheets(ReportID).Select 'name of the workbook SaveID = CategoryName & "_" & ModelName & "_" & FileID 'create company folder if not there already Output = "location of output" & CompanyName If Dir(Output, vbDirectory) = "" Then MkDir Output End If 'create model folder if not there already Output = "location of put" & CompanyName & "\" & ModelName If Dir(Output, vbDirectory) = "" Then MkDir Output End If 'where to save workbook Dim SaveLocation As String SaveLocation = Output & "\" & SaveID & ".xlsx" 'save workbook Dim NewBook As Workbook 'create WB for output Set NewBook = Workbooks.Add With NewBook .Title = ReportID .Subject = ReportID .SaveAs Filename:=SaveLocation End With 'decide which model to run If ModelID = 1 Then Call Regression ElseIf ModelID = 2 Then Call VolMix ElseIf ModelID = 3 Then Call ProdMix ElseIf ModelID = 4 Then Call AvgPrice End If Workbooks(SaveID).Activate Range("A1").Select deletecheck = Workbooks(SaveID).Sheets.Count 'delete extra sheets If deletecheck > 3 Then Call DeleteSheet("Sheet1") Call DeleteSheet("Sheet2") Call DeleteSheet("Sheet3") End If ActiveWorkbook.Save 'THIS IS WHERE I'M GETTING THE ERROR ActiveWorkbook.Close Workbooks(InputFile).Sheets(ReportID).Activate If i <> number_of_reports Then ActiveSheet.Next.Select End If Next i 

Так что модели 2 и 4 – это те, которые дают мне проблемы, когда они пытаются спастись, а другие нет. Я просмотрел код для каждой из моделей, и я не могу найти никакой разницы между 4, которые будут причиной этого, но, очевидно, что-то не так. Любые идеи или предложения?

Interesting Posts

Excel vba Удаление строки, если ячейка содержит текст

Синхронизация приложения Java и приложения Microsoft через Jacob

Код работает нормально, но Exception from HRESULT: 0x800A03EC все еще всплывает

Элементы управления Excel Active X – не работают снова – январь 2015 г.

Удалить строки из именованного диапазона с некоторым условием

несколько формул в одной ячейке

Excel VBA: как использовать переменную для VisibleItemsList?

Спецификация диапазона «несмежные» в формуле

Поиск ячейки на основе заголовка раздела данных, затем выбор последней строки этого раздела

Excel – если таблица A1: A100 содержит значение A101: A200, а затем удалить строку

Вытягивание SQL-информации в Excel

SUMIF по строке в таблице на основе критериев столбца в другой таблице

Копировать и вставить значения из одной книги Excel в другую

Использование формулы IF в VBA

PHP: «Примечание: неопределенная переменная», «Примечание: неопределенный индекс» и «Примечание: неопределенное смещение»

Давайте будем гением компьютера.