excel - VBA关闭任何打开的excel文件和excel应用程序
问题描述
我已经尝试了两天来找到一种使用 VBscript 关闭 excel 的方法。
我在任务调度程序中设置了一个调用restAPI的vbscript,然后打开excel,更新名为RepublicReport的工作簿中的数据模型。(这很好用)
数据模型更新使用 THISWORBOOK 事件触发文件保存。(这很好用)
然后 THISWORKBOOK 事件 SAVE 触发创建 Excel 工作表的新副本的宏,并将工作表通过电子邮件发送给客户端。(这很好用)
然后它关闭excel文件RepublicREport(这很好用)
然后是 SUPPOSE 一起关闭 excel(不工作!!!!)。
出于某种原因,在它全部运行之后,它会打开一个新的 Excel 实例,备份为 BOOK1.xls。我创建了一个 vbscript 以在 15 分钟后完成任务并再次关闭 excel,但它没有关闭文件。
这是我的 THISWORKBOOK 保存事件的代码。(是的,我有两条单独的代码试图关闭工作簿)。它会关闭 RepublicReport 工作簿,但会打开新版本的 Excel 作为 Book1.xls
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Dim objExcel
Dim objWorkbook
Call Macro2
Application.DisplayAlerts = False
ThisWorkbook.Close
ThisWorkbook.Saved = True
On Error Resume Next
Set objExcel = GetObject("C:\Republic_Standard_Report\RepublicReport.xlsm").Application
Set objWorkbook = objExcel.Workbooks("RepublicReport.xlsm")
If (Not objWorkbook Is Nothing) Then
objExcel.Workbooks("RepublicReport.xlsm").Saved = True
objExcel.Workbooks("RepublicReport.xlsm").Close
End If
On Error GoTo 0
objExcel.Quit
End Sub
这是我的 vbScript 来关闭位于 TaskScheduler 的单独实例中的 excel。
Dim objExcel
Dim objWorkbook
On error resume next
Set objExcel = CreateObject("Excel.Application") 'Reference to ANY excel file on local pc
set objWorkbook = objExcel.Workbooks("Book1.xlsx") 'Name of file you want to close
if (not objWorkbook is nothing) then
objExcel.Workbooks("Book1.xlsx").Saved=True
objExcel.Workbooks("Book1.xlsx").Close
end if
on error goto 0
objExcel.quit
我仍在学习,但我尝试了在互联网上找到的几种解决方案。最初,当我将它们嵌套在同一个任务中时,它们相互跳跃。所以我把他们分开,认为这会有所帮助,非常欢迎任何建议。先感谢您!!!
解决方案
推荐阅读
- scala - 如何对scala中的数据框列进行操作
- node.js - Azure 函数 Sendgrid 附件损坏
- php - 如何使用 codeigniter 更新记录?
- c# - 在c#中读取rabbitmq队列中消息的最佳方法
- python - 在 Flask 应用程序中的模块之间共享对象
- docusignapi - Docusign - 添加补充文件
- html - 弹性堆叠柱
- hazelcast - Hazelcast 是否支持同步(sync)@Cacheable 实现
- extjs - Extjs 6.5.3 从记录值绑定小部件列的隐藏属性
- android - 设备锁定时 Altbeacon 库不扫描