我努力翻譯一些C#代碼,這些代碼是我在寫回JScript時寫的。從長遠來看,我需要打開一個Excel工作簿,或者(如果它已經打開)將它帶到前面。不像C#,JScript中依靠僞劣ActiveXObject
得到的Excel應用程序句柄:在MS JScript中獲取已有的Excel活動實例
var Excel = new ActiveXObject("Excel.Application");
一旦你抓住對象的API是跨在MSDN適用於所有語言非常相似。但是,使用ActiveXObject
的似乎創建了一個全新的Excel實例。
如果我使用下面的代碼:
var Excel = new ActiveXObject("Excel.Application");
alert(Excel.ActiveSheet === null); // assume alert works as it does in Javascript
和Excel已經打開,警報會回來的true
。此外,任何變量與new ActiveXObject("Excel.Application")
還沒有被垃圾收集拿起設置導致一個新的EXCEL.EXE進程出現:
不用說,這一切讓我從如果工作簿檢查已經打開,並隨後導致一個醜陋的「你想打開這個只讀的」警告出現。有沒有辦法解決?
如果您唯一關心的是「您想打開此只讀」的醜陋警告,那麼只需以只讀方式打開該工作簿即可。 –
@DanielCook嗯,問題在於它需要可編輯和焦點。在文檔已打開的情況下以只讀方式打開實際上會打開工作簿的第二個副本(第一個已可編輯,第二個只讀)。否則(或只是壓制警告)將是優秀的解決方案。 –