首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保存工作簿和处理提图斯(或任何其他文档分类插件)弹出?

如何保存工作簿和处理提图斯(或任何其他文档分类插件)弹出?
EN

Stack Overflow用户
提问于 2016-06-30 04:15:20
回答 3查看 13.3K关注 0票数 3

我在HP UFT12中创建了一个脚本,该脚本针对CSV文件执行网格数据验证,并将结果保存在包含两个工作表的Excel文件中。

我之所以使用Excel,是因为它对用户来说更清晰,因为它允许单元格格式化,更容易比较数据等等。

我的代码可以在我的机器上运行,但是我的客户安装了TITUS文档分类插件,所以每次他们运行我的脚本时,它都会挂起,因为TITUS弹出消息要求用户在保存时对文档进行分类。消息不会显示给用户,可能是因为objExcel.DisplayAlerts = False,但脚本不会向前移动。

以下是我的代码中与这个问题相关的部分(出于保密原因,我省略了大部分代码)。

代码语言:javascript
复制
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,但它们与TITUS for Outlook相关,而且这两个版本的问题都没有得到适当的解决。

有没有人知道如何解决这个问题,或者可以向我推荐一份研究材料来帮助我解决这个问题?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-01 21:10:54

它看起来非常简单(我不知道我以前怎么没有想到这一点),我设法解决了我的问题,只需在保存文件之前添加objExcel.EnableEvents = False

代码语言:javascript
复制
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
票数 8
EN

Stack Overflow用户

发布于 2018-07-20 16:51:33

据我所知,上面的答案都没有对Excel工作簿进行分类(我在我们的工作内部网上发现了这一点,但在互联网上找不到任何代码)。

下面的代码应该将“分类”设置为“内部”,它可以根据您的需要进行修改,并且还将基于“ClassificationVal”创建页脚文本。

然后,代码设置分类,添加左侧页脚,同时删除恼人的分页符(注意:设置分类会自动设置分页符)。

在保存前禁用事件似乎是避免弹出框的唯一方法...

注意:您需要将“Company Name-”替换为“”。“‘IBM”(如果您的公司将其名称添加到分类中,如果他们只使用TITUS分类,则删除“公司名称-”。此外,根据我的经验,分类似乎是为每个公司定制的,因此您可能需要相应地更新。

代码语言:javascript
复制
ClassificationVal = "[Company Name]-1nternal"

ClassificationDesc = "[Company Name]: "
ClassificationDesc2 = ""
    Select Case ClassificationVal
        Case "[Company Name]-1nternal"
            ClassificationDesc2 = "Internal"
        Case "[Company Name]-pub1ic"
            ClassificationDesc2 = "Public"
        Case "[Company Name]-Confidentia1"
            ClassificationDesc2 = "Confidential"
        Case "[Company Name]-5ecret"
            ClassificationDesc2 = "Secret"
        Case "[Company Name]-pr1vate"
            ClassificationDesc2 = "Private"
    End Select
    If ClassificationDesc2 = "" Then Stop
ClassificationDesc = ClassificationDesc & ClassificationDesc2

With ActiveWorkbook.CustomDocumentProperties
     .Add Name:="[Company Name]Classification", _
     LinkToContent:=False, _
     Type:=msoPropertyTypeString, _
     Value:=ClassificationVal
End With

For Each ws In ActiveWorkbook.Worksheets
    ws.PageSetup.LeftFooter = ClassificationDesc
    ws.DisplayPageBreaks = False
Next ws

Application.EnableEvents = False    'disable TITUS pop-up

ActiveWorkbook.SaveAs Filename:= _
        "C:\Data\kelvinj\My Documents\TITUS Test.xlsx", 'Change to suite your requirements
             FileFormat:=xlOpenXMLWorkbook _
             , CreateBackup:=False

Application.EnableEvents = True

不知道为什么这很难找到解决方案-这是我工作过的第二家跨国公司感染了提图斯,所以肯定有很多人需要这个代码?!

票数 2
EN

Stack Overflow用户

发布于 2017-10-12 15:24:49

我不是一个VBA程序员,但是我的朋友们正在研究这个。

我们找到的解决方案是关于提图斯的行为

当你保存任何新的工作簿时,它会要求你对它进行分类。注意:新建工作簿不是已保存的工作簿。因此,我们创建了一个空白工作簿并将其保存(具有所需的分类)

修改了代码以获取该工作簿并向其中添加数据,并使用另存为创建所需的文件

它工作得很顺利,没有任何问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38109265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档