Ich habe mehrere 20 MB Excel-Dateien, und sie müssen jede Woche vor Geschäftsbeginn (Montag 8 Uhr) aktualisiert werden.
Diese Dateien enthalten ein Datenblatt und die Daten werden über eine externe Verbindung (ODC-Datei) von einer SQL Server-Ansicht abgerufen.
Sie haben auch ein Pivot-Blatt, das auch aktualisiert werden muss, nachdem das Datenblatt aktualisiert wurde.
Ich versuche eine Lösung (Windows PowerShell) zu finden, um die Aktualisierung von Daten- und Pivot-Blättern zu automatisieren, ohne die Dateien zu berühren. "Aktualisieren beim Öffnen" und andere Excel-Optionen sind nicht praktikabel, da es bis zu 20 Minuten dauert, alle Verbindungen zu aktualisieren.
Ich möchte auch nicht alle Blätter aktualisieren, da die Datei benutzerdefinierte Färbung für Diagramme hat und "Aktualisieren" setzt es auf Excel-Standard, die nicht passieren kann.
Excel ODC-Verbindungen und Pivots automatisch aktualisieren, ohne die Datei PowerShell zu öffnen
Ich habe das versucht, aber es scheint nicht mit ODC-Verbindung zu arbeiten? Zumindest macht es nichts .:
Windows Powershell:
$ExcelApp = new-object -ComObject Excel.Application
$ExcelApp.Visible = $false
$ExcelApp.DisplayAlerts = $false
$Workbook = $ExcelApp.Workbooks.Open("c:\test\ref_test.xlsx", 3, $false, 5, $null, $null, $true)
Start-Sleep -s 30
$Workbook.RefreshAll()
$Workbook|Get-Member *Save*
$Workbook.Save()
$ExcelApp.Quit()
Irgendwelche Ideen?
Office-Version: 2010, auf Windows 7
Dont wissen, welche Version von Office Sie haben aber vielleicht 'BackroundRefresh' ist für diese Verbindung aus. Schauen Sie sich [hier] (http://office.microsoft.com/en-ca/excel-help/refresh-an-external-data-connection-HA102840049.aspx#_Run_a_query) an, wie Sie es einrichten können. Die Methode '.RefreshAll' wird nur aktualisiert, wenn die Eigenschaft 'BackgroundQuery' auf 'True' gesetzt ist, wie in [MSDN] (http://msdn.microsoft.com/en-us/library/office/ff838648 (v = office.15) .aspx) beschrieben) – Matt
Hallo Matt, aktualisiert Hintergrund aktualisiert jedes Mal, wenn ein Benutzer die Datei öffnet und muss mehr als 20 Minuten warten, um neue Daten zu erhalten. Ich verwende Excel 2010 auf Win7. Aktualisierte die ursprüngliche Frage mit dieser Info, danke für das Hervorheben. – KathyBlue
Ich würde einen Cron-Job mit dem Windows-Taskplaner einrichten, um eine .bat-Datei jeden Montagmorgen auszuführen. In der .bat-Datei würde ich eine Argument-ID übergeben, die sagt "Hey, ich laufe von einem Cron-Job", dann würde ich in der ThisWorkbook Workbooks.Open-Funktion nach dem Argument suchen und die erforderliche Aktualisierung ausführen und die Datei schließen Excel Buch wie nötig. Der folgende Link (von der Weg zurück Maschine) spricht über das Öffnen von Excel mit CLI und die Weitergabe eines Arguments http://www.mrexcel.com/archive/VBA/15657.html – Michael