Ich habe eine kleine Excel-Datei mit VBA. Wir verwenden den Taskplaner in Windows, um diese kleine Datei zu öffnen, die dann ein Makro ausführt, um verschiedene Berichte zu öffnen, zu aktualisieren und zu speichern, die wir automatisiert haben. Die Datei funktioniert unter Windows 2000 und Excel 2003 einwandfrei, aber wir konvertieren zu Windows 7 und Excel 2010. Der Taskplaner öffnet die Datei und die Datei öffnet dann den entsprechenden Bericht. Es sieht so aus, als würde sie aktualisiert und dann den vorherigen Bericht löschen und den neuen Bericht an einem bestimmten Ort speichern. Aber wenn ich den aktualisierten Bericht öffne, haben sich die Daten aus der externen Abfrage nicht geändert. Ich kann den Bericht manuell ausführen, indem ich auf „Alles aktualisieren“ klicke, und die Daten werden aktualisiert. Außerdem habe ich keine Fehler im VBA festgestellt. Hier ist der Code:
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
Muss ich etwas ändern, damit es in Excel 2010 funktioniert?