Scriptujete Excel? Pak bacha!

18. duben 2012 VaDo

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.

Soubor
  • 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í.

Klíčová slova: Scripting, Excel

Pokračujte ve čtení