我正在 HP UFT 12 中创建一个脚本,该脚本针对 CSV 文件执行网格数据验证,并将结果保存在带有两个工作表的 Excel 文件中。
我为此使用 Excel,因为它对用户来说更加清晰,因为它允许设置单元格格式,更容易比较数据等等。
我的代码在我的机器上工作,但我的客户端安装了 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
我已经在网上搜索过,但到目前为止还没有找到任何相关的内容。我确实找到了 this 和 this ,但它们与 TITUS for Outlook 相关,并且在任何一个中都没有正确解决问题。
有谁知道如何解决这个问题,或者可以指出我的研究 Material 来帮助我解决这个问题?
提前致谢。
最佳答案
看起来简单得可笑(我不知道我以前怎么没想过这个),我设法通过在保存文件之前简单地添加 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
关于excel - 如何保存工作簿并处理 TITUS(或任何其他文档分类加载项)弹出窗口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38109265/