2013-01-08 79 views
3

目前,我們有它運行從Java腳本VBA編程訪問不起作用

  • 用戶報告觸發報告
  • 報告進行處理並保存在XML格式
  • 當報告完成,用戶可以選擇下載報告
  • 當用戶點擊下載時,會調用Web服務。
    1. 此Web服務打開空白的Excel工作簿從一個單獨的XML模塊
    2. 副本宏(駐留在服務器上)
    3. 宏過程完成XML報告,並顯示在表

使用Excel 2002(SP 3)時,這一切都可以很好地工作。

我們的工作站計劃從XP升級到Windows 7在Windows 7中,來自Excel 2010中 我試着用紅外團隊提供的試驗機整步。

測試時,我們發現xml模塊中的宏未在Excel 2010中複製。 沒有錯誤也沒有警告。

我做了一些搜索,發現需要勾選「信任訪問VBA項目對象模型」。 試過這樣做,但無濟於事。

讓我知道是否有什麼不清楚或需要更多信息。

編輯1 這是JS是如何打開的Excel +添加工作簿+添加模塊:

xlApp = new ActiveXObject("Excel.Application"); 
//Add a workbook 
xlBook = xlApp.Workbooks.Add; 

// This loads the modules into XL from the reporter_modules 
var xlMod; 
xlMod = xlBook.VBProject.VBComponents.Add(1); 
xlMod.CodeModule.AddFromString(xmlModule.childNodes(i).text); 

因爲在Excel 2002中只。xls,代碼不同時打開Excel提延伸任何地方。你知道這怎麼能實現?

感謝, 符合

+0

以防萬一,對於所有MS產品,更改設置後,它只會在關閉應用程序並在下次激活後激活。 – Larry

+0

@Larry,感謝您的評論。已經做到了。重新啓動機器以確保複選框仍被打勾。 – Meet

+0

可能是因爲訪問新創建的文件時遇到問題,因爲它們通常不是對每個人都「完全訪問」?也許windows7阻止從服務器的訪問。 – Vogel612

回答

1

您可以指定保存的文件類型。代碼中的哪一部分與您發佈的代碼不同。 excel將允許您將Vba模塊添加到.xlsx,但會在保存時發出警告(您的java代碼無疑是禁止的)。我不知道Java語法,但在VBA中它是

ActiveWorkbook.SaveAs "C:\ron.xlsm", fileformat:=52 

52是excel使用的文件類型常量。您可以看到更多詳細信息@http://www.rondebruin.nl/saveas.htm

+0

不好。由於報告正在Web服務器中運行。我不能讓JS保存客戶端的Excel表格。感染,在Office 2002中運行時的報告也不會保存在本地客戶端(他必須手動保存)。 – Meet

+0

嗯,我認爲這個問題與文件格式無關。可能值得嘗試一下,看看這是否是問題。我現在更傾向於認爲它與Windows 7安全相關。你有可以試用的XP/Excel 2010機器嗎? – Pynner

+0

用excel 2010在XP中試用,但結果相同。宏沒有被複制:( – Meet