2016-06-29 50 views
0

我在HP UFT 12中創建了一個腳本,該腳本對CSV文件執行網格數據驗證,並將結果保存在帶有兩個工作表的Excel文件中。
我正在使用Excel,因爲它對用戶來說更加清晰,因爲它允許單元格格式化,更容易比較數據等等。如何保存工作簿並處理TITUS(或任何其他文檔分類加載項)彈出窗口?

我的代碼在我的機器上工作,但我的客戶端安裝了TITUS文檔分類加載項,所以每次運行我的腳本時都會掛起,因爲TITUS彈出消息要求用戶在保存時對文檔進行分類。該消息不會顯示給用戶,可能是因爲objExcel.DisplayAlerts = False,但該腳本不會向前移動。

以下是我的代碼與此事有關的部分(由於保密原因,我省略了大部分代碼)。

Dim objExcel : Set objExcel = CreateObject("Excel.Application") 
Dim objWorkbook : Set objWorkbook = objExcel.Workbooks.Add 
objExcel.Visible = False 
Dim wsGrid : Set wsGrid = objWorkbook.Worksheets(1) 
wsGrid.Name = "Grid Data" 
Dim wsExported : Set wsExported = objWorkbook.Worksheets.Add 
wsExported.Name = "Exported Data" 

' Internal code to perform validation and fill worksheets ... 

objExcel.DisplayAlerts = False 
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls" ' This is where it hangs in machines where the add-in is installed 
objWorkbook.Close 
objWorkbook.Quit 
Set objWorkbook = Nothing 
Set objExcel = Nothing 

我已經在網上搜索,但到目前爲止還沒有找到任何相關的東西。我確實發現了thisthis,但它們與Outlook的TITUS相關,並且都沒有妥善解決問題。
有誰知道如何解決這個問題,或者可以指點我的研究材料來幫助我解決這個問題?

在此先感謝。

+0

如果這是在UFT中運行,你不能添加相關的彈出到對象庫並處理它的方式嗎? – Dave

+0

@Dave,這是我還沒有嘗試過的一件事。我沒有在我的機器上安裝加載項。此外,該對象在運行時不可見。即使它們不可見,是否可以處理組合框和按鈕對象?我能否在不可見的按鈕中執行類似'objButton.Click'的操作。 –

+1

如果它作爲插件運行到excel,對話框應該可以通過Excel本身訪問 - 也許有一個VBA方法可以實現以編程方式處理彈出窗口?也許你可以在你的開發機器上安裝插件來找出處理它的最佳方法?如果一切都失敗了,你總是可以使用'SendKeys'調用來回顯一個'Enter'到Excel應用程序,希望清除彈出窗口? – Dave

回答

3

至於因爲它看起來可笑的簡單(我不知道怎麼我以前沒有想到這一點),我管理的保存文件前簡單地增加objExcel.EnableEvents = False解決我的問題:

objExcel.DisplayAlerts = False 
objExcel.EnableEvents = False ' this is the problem solver for the matter! 
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls" 
objExcel.EnableEvents = True ' Not sure if this statement is necessary, though 
objWorkbook.Close 
objWorkbook.Quit 
Set objWorkbook = Nothing 
Set objExcel = Nothing 
0

我我不是一個VBA編碼器,但我的朋友們在做這個

我們找到了解決辦法是在提多

的行爲它會問你任何新的工作簿分類當u保存它。注意新的不是已經保存的工作簿。 所以我們創建了一個空白工作簿並保存它(與所需的分類)

修訂的代碼,以該工作簿和數據添加到它,並使用另存爲以創建所需的文件

它的工作順利,沒有任何的問題。

+0

嗯所以你打開每個執行的空白工作簿,粘貼內容,然後保存它?它是如何工作的?我仍然認爲我找到的解決方案更實用,因爲它不需要這種手動操作,因爲任何執行我的腳本的人都需要事先在他們的計算機上創建這樣的工作簿... –

相關問題