Refresh Excel per Script
Hallo zusammen,
ich nutze ein vb-Script (aus batch), das mir wunderbar aus einem sheet ein pdf erzeugt.
Nun ist das Problem eines fehlenden refreshes nach dem Öffnen. Mit anderen Worten: Excel öffnen, aktualisieren, pdf erzeugen und Excel schließen.
Was mache ich falsch in Zeile 5? (bitte keine Diskussion über Batch ... )
Würde mich über einen Tipp freuen
okidoki
ich nutze ein vb-Script (aus batch), das mir wunderbar aus einem sheet ein pdf erzeugt.
Nun ist das Problem eines fehlenden refreshes nach dem Öffnen. Mit anderen Worten: Excel öffnen, aktualisieren, pdf erzeugen und Excel schließen.
Was mache ich falsch in Zeile 5? (bitte keine Diskussion über Batch ... )
SET Path=%~dp0
>print.vbs ECHO Set appXLS = CreateObject("Excel.Application")
>>print.vbs ECHO Set wbkXLS = appXLS.Workbooks.Open("%Path%\test.xlsx", , true)
>>print.vbs ECHO wbkXLS.sheets("Aufteilung").RefreshAll
>>print.vbs ECHO wbkXLS.sheets("Aufteilung").PageSetup.Orientation = 2
>>print.vbs ECHO wbkXLS.sheets("Aufteilung").ExportAsFixedFormat 0,"%Path%\test.pdf"
>>print.vbs ECHO wbkXLS.Close 0
>>print.vbs ECHO Set wbkXLS = Nothing
>>print.vbs ECHO appXLS.Quit
>>print.vbs ECHO Set appXLS = Nothing
print.vbs
del print.vbs
Würde mich über einen Tipp freuen
okidoki
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1772099016
Url: https://administrator.de/contentid/1772099016
Ausgedruckt am: 19.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Die "RefreshAll" Methode gilt für das "Workbooks" Object nicht für ein Sheet Object
https://docs.microsoft.com/de-de/office/vba/api/excel.workbook.refreshal ...
Grüße Uwe
https://docs.microsoft.com/de-de/office/vba/api/excel.workbook.refreshal ...
@echo off
set "pfad=%~dp0"
set "script=%temp%\print.vbs"
>"%script%" (
ECHO Set appXLS = CreateObject^("Excel.Application"^)
ECHO Set wbkXLS = appXLS.Workbooks.Open^("%pfad%test.xlsx", , true^)
ECHO wbkXLS.RefreshAll
ECHO wbkXLS.sheets^("Aufteilung"^).PageSetup.Orientation = 2
ECHO wbkXLS.sheets^("Aufteilung"^).ExportAsFixedFormat 0,"%pfad%test.pdf"
ECHO wbkXLS.Close 0
ECHO Set wbkXLS = Nothing
ECHO appXLS.Quit
ECHO Set appXLS = Nothing
)
"%script%"
del "%script%"
Zitat von @GrueneSosseMitSpeck:
die Export Methode ist legacy, lieber saveas2 verwenden. Seit Office 2013 oder 2016 so in der Excel API verfügbar.
Du meinst wohl Word.die Export Methode ist legacy, lieber saveas2 verwenden. Seit Office 2013 oder 2016 so in der Excel API verfügbar.
https://docs.microsoft.com/de-de/office/vba/api/word.saveas2
In Excel gabe es die SaveAs2 Methode noch nie.
https://docs.microsoft.com/de-de/office/vba/api/excel.worksheet
Zitat von @OKIDOKI:
PS: Vielleicht fehlt "Inhalte aktivieren" auch noch, da beim normalen Öffnen dies abgefragt wird ...
Du musst das Dokument im Trustcenter erst als vertrauenswürdig klassifizieren damit du dies automatisiert machen kannst (wäre ja schön blöd wenn die "bösen Buben" das ohne deine Zustimmung via Code machen könnten)PS: Vielleicht fehlt "Inhalte aktivieren" auch noch, da beim normalen Öffnen dies abgefragt wird ...
https://support.microsoft.com/en-us/office/enable-or-disable-activex-set ...
Enable ActiveX controls in the Backstage view
Another method to enable ActiveX controls in a file is via the Microsoft Office Backstage view, the view that appears after you click the File tab, when the yellow Message Bar appears.
Click the File tab.
In the Security Warning area, click Enable Content.
Under Enable All Content, click Always enable this document's active content.
The file becomes a trusted document.