处理另一个加载项的提示

Handling the prompts of another Add-In

以下代码是我创建的 Excel 加载项的一部分,将为我们打开的当前数据提取创建一个文件名。

Sub ExtractSave()
'
If InStr(LCase$(ActiveWorkbook.name), "extract") > 0 Then
    Exit Sub
Else
    Dim MyDir As String, fn As String
    MyDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\Extract Files" ' change this to valid path
    If Len(Dir(MyDir, vbDirectory)) = 0 Then MkDir MyDir
    fn = MyDir & "\Extract - " & Format(Now, "mm-dd-yyyy hh_mm")
    ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook
End If

End Sub

当我关闭工作簿时,确实需要进行保存,因为将对工作簿进行更改。所有这一切都很好。问题是该公司有一个 .COM 加载项,所有文档都需要 运行。它使用特定的安全级别标识符标记文档页脚。虽然我不需要绕过这个,但我想知道是否可以编写代码来复制出现此框时输入的代码?有两个按钮,取消。弹出窗口中的默认按钮是 Yes。我确实尝试添加

Application.DisplayAlerts = False
If Me.Saved = False Then Me.Save
Application.DisplayAlerts = True

进入Workbook_BeforeClose私有Sub,但是op还是出现了。此外,如果我是正确的,这段代码将不适用于已保存的工作簿,因为这是来自加载项的 运行ning。

我找不到与此特定问题相关的任何等效信息,因此我们将不胜感激。另外,我不知道还有哪些其他信息可以帮助您找到解决方案,所以请提问,不要因为我遗漏了什么而投反对票。

事件顺序:

  1. 将数据导入新工作簿
  2. 运行 ExtractSave 例程
  3. 查看 .COM 插件弹出窗口(需要按下 YES 按钮,YES 是 默认按钮)
  4. 用户对工作簿执行职责
  5. 点击关闭
  6. 提示保存对工作簿的更改(同样,默认为 YES, 需要这个 "clicked")
  7. 再次查看 .COM 插件弹出窗口(需要按下 YES 按钮,YES 是默认按钮)

什么 VBA 代码可用于在保存工作簿时自动单击 .COM 加载项的“是”按钮?

来自评论:

在第一个保存事件(OP 列表中的#2)发生时,在此行 ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook 之前添加 Application.SendKeys ("~")

对于 #7 .COM 插件弹出窗口,在 Workbook_BeforeSave 事件中添加 Application.SendKeys ("~") 没有帮助(我希望有人可以帮助我们修复它):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

     SendKeys "~"  

End Sub