Eu tenho um pequeno arquivo Excel com VBA. Usamos o agendador de tarefas do Windows para abrir este pequeno arquivo que então executa uma macro para abrir, atualizar e salvar vários relatórios que automatizamos. O arquivo funciona bem no Windows 2000 e Excel 2003, mas estamos convertendo para Windows 7 e Excel 2010. O agendador de tarefas abre o arquivo e o arquivo abre o relatório apropriado. Parece que ele é atualizado e, em seguida, exclui o relatório anterior e salva o novo relatório em um local específico. Mas quando abro o relatório atualizado, os dados da consulta externa não foram alterados. Posso executar o relatório manualmente clicando em Atualizar tudo e os dados são atualizados. Também não encontrei nenhum erro no VBA. Aqui está o código:
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
Há algo que preciso alterar para que funcione no Excel 2010?