以下代码是我创建的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加载项,需要在所有文档上运行。它使用特定的安全级别标识符标记文档页脚。虽然我不需要绕过这个,但我想知道是否有可能编写代码,当这个框出现时会复制命中输入?有两个按钮,是和取消。弹出窗口中的默认按钮为是。我确实尝试添加
Application.DisplayAlerts = False
If Me.Saved = False Then Me.Save
Application.DisplayAlerts = True
进入Workbook_BeforeClose私有Sub,但是op仍然出现了。此外,如果我是正确的,这段代码将无法用于已保存的工作簿,因为它是从加载项中运行的。
我无法找到针对此特定问题的任何等效信息,因此我们将不胜感激。此外,我不知道在您寻求解决方案的帮助中有哪些其他信息会有用,所以请不要投票,因为我错过了什么。
活动顺序:
在保存工作簿时,有哪些VBA代码可以自动单击.COM加载项的YES按钮?
答案 0 :(得分:1)
来自评论:
当第一个保存事件(OP中列表中的#2)发生时,在此行Application.SendKeys ("~")
之前添加ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook
。
对于#7 .COM插件弹出窗口,在Application.SendKeys ("~")
活动中添加Workbook_BeforeSave
并没有帮助(我希望有人可以帮我们解决):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SendKeys "~"
End Sub