Scriptujete Excel? Pak bacha!
Používáte scriptování Excelu? V pořádku. Ja ano, rád. Ušetří to spoustu klikání. A pokud je potřeba nějaká data pravidelně zpracovávat a odeslílat uživatelům, co jiného jim dát, než soubor v Excelu.
Nemohl jsem si vynachválit až do... teď. Přenesl jsem svoje scripty na Windows Server 2008 R2 x64. Paráda, testovací spuštění z konzole proběhlo k úplné spokojenosti. Takže se naplánovaly úlohy a ... Tím to začalo.
Soubory, které měly být, nebyly. Proč? Testovací běh v pořádku, soubory jsou na svém místě. Po naplánované úloze ne. Oprávnění? Starý trik - spustit jako admin. Stále ne. Kde je chyba?
1. set oExcel=wscript.createobject("Excel.Application") 2. oExcel.Visible = false 3. oExcel.Workbooks.Open reportFile
Řádek číslo 3 vygereuje chybu: 1004 - Aplikace Microsoft Office Excel nemůže získat přístup k souboru c:\xxx\soubor.xls.
- Existuje
- Uživatel na něj má oprávnění pro Change
Takže tedy velký bratr. Počet výsledků, které jsem našel svědčí o tom, že nejsem sám: Stránka 1 z přibližně 47 300 výsledků (0,24 s). Tak tedy se tím budem probírat. Po několika hodinách, kdy jsem probral možné hotfixy, rozumná, rozumně vypadající a úplně pitomá a mystická řešení, jsem to našel! Už jsem zkoušel ten server zaříkávat. Nepomohlo.
Řešení chyby 1004 - pro MS Office
Na Windows 2008 x64, Windows 2008 RS x64
Vytvořte složku %SYSTEMROOT%\syswow64\config\systemprofile\Desktop
Na Windows 2008 x86, Windows 2008 R2 x86
Vytvořte složku %SYSTEMROOT%\system32\config\systemprofile\Desktop
Já vím, kravina. Funguje to. A touto chybou, pitomou, je postižen nejen Excel, Word taky.
A pokud používáte na základní scriptování jiný jazyk, neradujte se. Powershell - to samo chování. Spouštění automatizovaných maker - to samé chování.