A Mikrofo$t fejlesztési részlegnek innét, sok szeretettel
Oly hálás lennék, ha valaki elárulná, hogy az Office 2007 telepítésével mi a f@szért kellett megváltoztatni az Office OLE hívásait. Konkrétan: az Excel workbook SaveAs metódusa eddig "simán" tudta használni a "/"-t tartalmazó útvonal-fájlneveket. Most már nem. Ellenben most helyette van a sokatmondó hibaüzenetek egész sora:
OLE error code:800A03EC in Microsoft Office Excel
Microsoft Office Excel cannot access the file 'C:\// tmp/A29 6D820'. There are several possible reasons:
- The file name or path does not exist.
- The file is being used by another program.
- The workbook you are trying to save has the same name as a currently open work book.
HRESULT error code:0x80020009
Akkor ezt most nézzük meg figyelmesen.
- Természetesen nem A29 6D820 a fájl neve.
o Mivel nem ez a fájl neve (amely néven lementeném), nem is létezik. Az útvonal így ránézésre gyanús, de mondom, az Office 2003 simán megbirkózott vele.
- Mivel nincs ilyen fájl, más nem is használja.
- „A munkafüzetnek, amit le szeretnél menteni, ugyanaz a neve mint az aktuálisan megnyitott munkafüzetnek (könyvnek).” – Ne döbbentsenek meg már ennyire. De’j’szen pont ezt akarom. A megnyitott munkafüzetet (ami nem mellesleg még nincs lementve, mert még nem is volt) lementeném a nevén.
Az error kódra túl sok értelmes találat nincs.
A beépített Excel (VB) help szerint a workbook.Saveas(„C:\kutya\fasza.xls”) egy teljesen korrekt hívás. (Igen, tudom, hogy itt backslash-t használtam most, de mondom az előző Office ezt simán le tudta kezelni normális slash esetén is.)
Ezzel szemben a valóságban mostantól csak backslash-sel működik az útvonal. És kell még egy paraméter, amit a hivatalos help opcionálisként tüntet fel (FileFormat, hogy melyik fos excel formátumba óhajtunk menteni, a nekem kellő .xlsx esetén a nagyon ráutaló 51-t kell használni.
Fuck you very muuuuuuuch.