У меня есть небольшой файл Excel с VBA. Мы используем планировщик задач в Windows, чтобы открыть этот небольшой файл, который затем запускает макрос для открытия, обновления и сохранения различных отчетов, которые мы автоматизировали. Файл отлично работает в Windows 2000 и Excel 2003, но мы конвертируем в Windows 7 и Excel 2010. Планировщик задач открывает файл, а затем файл открывает соответствующий отчет. Похоже, что он обновляется, а затем удаляет предыдущий отчет и сохраняет новый отчет в определенном месте. Но когда я открываю обновленный отчет, данные из внешнего запроса не изменились. Я могу запустить отчет вручную, нажав «Обновить все», и данные действительно обновляются. Также я не обнаружил никаких ошибок в VBA. Вот код:
Private Sub Workbook_Open()
Dim wrkNewBook As Workbook
Dim wrkOldBook As Workbook
Dim iCount As Integer
Dim sFileName As String
Dim sReportName As String
Dim iSheetCount As Integer
Dim sWrapperName As String
sWrapperName = ActiveWorkbook.Name
sFileName = CStr(Application.Workbooks(sWrapperName).Sheets(1).Range("FileName").Value)
iSheetCount = CLng("0" & Application.Workbooks(sWrapperName).Sheets(1).Range("NumberOfWorkSheets").Value)
Set wrkOldBook = Application.Workbooks.Open(sFileName)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Application.Calculate
If iSheetCount > wrkOldBook.Sheets.Count Then
iSheetCount = wrkOldBook.Sheets.Count
End If
While (wrkOldBook.Sheets.Count > iSheetCount)
wrkOldBook.Sheets(wrkOldBook.Sheets.Count).Delete
Wend
Application.ScreenUpdating = True
Application.Calculate
wrkOldBook.SaveAs "W:\SHAREU\Finance\POLR 500 Reports\" & wrkOldBook.Name
wrkOldBook.SaveAs "E:\PUB\EEP\Finance\Cost Reports\" & wrkOldBook.Name
wrkOldBook.Close False
Application.DisplayAlerts = True
Application.Quit
End Sub
Нужно ли что-то изменить, чтобы это работало в Excel 2010?