El código VBA no actualiza la consulta externa

El código VBA no actualiza la consulta externa

Tengo un pequeño archivo de Excel con VBA. Usamos el programador de tareas en Windows para abrir este pequeño archivo que luego ejecuta una macro para abrir, actualizar y guardar varios informes que hemos automatizado. El archivo funciona bien en Windows 2000 y Excel 2003, pero lo estamos convirtiendo a Windows 7 y Excel 2010. El programador de tareas abre el archivo y luego el archivo abre el informe apropiado. Parece que se actualiza y luego elimina el informe anterior y guarda el nuevo informe en una ubicación particular. Pero cuando abro el informe actualizado, los datos de la consulta externa no han cambiado. Puedo ejecutar el informe manualmente presionando Actualizar todo y los datos se actualizan. Además, no encontré ningún error en VBA. Aquí está el 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

¿Hay algo que deba cambiar para que funcione en Excel 2010?

información relacionada