簡體   English   中英

從安裝了多個版本的Excel的VbScript啟動Excel 2010

[英]Launching Excel 2010 from VbScript with multiple versions of Excel installed

我有一個VbScript文件,該文件使用CreateObject("Excel.Application")啟動Excel,然后運行宏。 這樣,可以在不依賴Workbook_open方法的情況下運行基於excel的批處理。

至少在過渡期內,理想的解決方案是使某些作業在Excel 2003上運行,而其他作業在2010年運行。

我在注冊表中尋找一種強制使用特定版本的方法,但這似乎不起作用。 無論如何都不能使用注冊表,因為兩個作業可以同時運行。

是否可以在VbScript中定位特定版本?

這不可能輕易做到。 注冊表會將“ Excel.Application”與特定的excel.exe關聯,並且更改中間會話可能會引起問題。

可以嘗試構建自己的COM對象(需要這樣做,因為您不能直接在VBScript中調用DLL函數),這將在特定版本的excel上調用regsvr。 您將必須謹慎地進行控制:確保在創建“ Excel.Application”對象之前執行此操作。 我的假設是,此后,您可以通過COM對象再次調用regsvr來自由更改注冊表。 甚至有人可能已經編寫了基於COM的regsvr。 而測試它是微不足道的。

這種方法可能有效:據我所知,COM工廠僅需要CoClass GUID。 VBScript運行時隱式調用的后續queryInterface調用將依賴於接口UUID,這兩個版本之間將保持一致。 但是我擔心它太脆弱了,無法用於生產。

我相信您知道,最簡單的方法就是擁有兩台機器!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM