各位前輩好,我最近在撰寫用 LabVIEW 操作 EXCEL 報表時碰到了問題
我的程式會把收集到的數據寫入報表中,而報表內有兩個 Sheets,程式會把不同的資料分別寫入兩個不同的 Sheet 中,規格與環境如下 :
使用Report Generation 模組,LabVIEW 版本為2017,作業系統為 WIN10,Excel版本為2016
報表格式為 EXCEL 的 XLS,兩個Sheets,且格式固定不能變動
而實際上,上述的功能之前我都已完成,可以正常執行。然而,最近在修改程式時卻發現原本正常的地方卻出現錯誤。經過測試發現是切換 Worksheet 的 Excel Get Worsheet.vi 出現問題,錯誤的訊息如下:
看起來是從 Worksheet Activate 出現錯誤,而我也試過用 ActiveX 做一樣的事,結果也是在同樣的地方跳出錯誤。除此之外,亦試過使用 Index 或 Worksheet Name來指定 Sheet,但皆會出現同樣的問題。
除了 Excel Get Worksheet.vi ,其他功能皆正常,亦可以正確讀取所有 Sheets 的名稱,但在且換 Worksheet 時就是會出現問題。
這邊我很確定報表沒問題,以前也都是用同一份,亦很確定報表內有兩個 Sheets 且 Sheets 名稱沒有錯。
想請問這個錯誤的原因? 如何解決?
若有需要,關於切換 Worksheet 有什麼替換方法?
由於我使用的是現成的報表,所以在不能使用 Excel Get Worsheet.vi 下要改不同 sheet 的名稱無法靠這個 function
因此我這裡使用 ActiveX 來改 Worksheet 的名稱,能成功動態改變 sheet 名稱,但最後在還是會在同樣的地方出現錯誤。
我亦有另外嘗試換由 LabVIEW 建立 Excel 報表,結果發現使用 Excel Add Worksheet.vi 也會出現同樣錯誤。
你能上傳程式檔案嗎? 不然比較難判斷。
不過,如果本來沒問題,最近才出現錯誤,那可能是系統端更新造成的。
譬如WIN10或是OFFICE 2016的自動更新,有動到底層函數。
導致RGT呼叫OFFICE功能時候,對應不起來。
你試試看安裝LabVIEW2020試用版和RGT,然後跑你程式看看?
或是檢查你OFFICE的認證是否到期? 要重新輸入序號??
我這裡嘗試了你的建議,不過為求快速測試,直接使用了原本有安裝的LabVIEW2019
使用LabVIEW 2019跟2017測試上圖相同的程式碼發現,2019可以順利執行而2017不行
我這裡目前就打算直接使用 LabVIEW 2019 來迴避這個問題了
另外補充我的Excel2016原本就是產品啟動失敗的狀態,不過之前的程式仍可以順利運行
除了這些,我的LabVIEW 2017 是32bit版本而LabVIEW 2019是64bit版本,不知道是不是這個因素造成…
感謝您的建議 !!
恩,建議全部安裝64bit ,比較不會有疑慮。
Win 10 是64bit,所以LabVIEW 和 office 也都安裝64bit版本。
基於實驗精神,你有空可以再試試看,
安裝LabVIEW2019 32bit,能否呼叫成功?
另外,office還是建議取得合法授權序號,讓它可以正常啟動成功,
因為微軟好像有加強線上驗證,你如果不讓office正常工作,
你的程式每次跑到RGT函數時,就很可能再度出現錯誤訊息,讓你浪費很多時間debug。