excel - 关闭文件后终止在后台保持打开状态的 Excel 进程
问题描述
我正在编写一个程序,在其中打开一个 Excel 文件并将其迁移到另一个主文件中。之后我想删除它。当我尝试删除文件时,出现权限被拒绝错误。
在网上研究后,我确实看到我犯了一些错误,然后确保正确关闭文件并销毁相关对象,但我仍然收到错误消息。
Sub Test()
Dim app as New Excel.Application
Dim wb as Workbook
Set wb.app.Workbooks.Open(FILEPATH & "\filename.csv")
'I know the filepath is correct as I can open and manipulate the file
'... Do things
wb.close
Set wb = Nothing
kill FILEPATH & "\filename.csv"
'I plan on adding error handling once the basic function works
End Sub
运行时错误“70”:权限被拒绝
编辑:在玩过调试之后,我可以说我可以成功销毁对象,但是 Excel 进程在后台保持打开状态,我必须在任务管理器中手动杀死它才能使代码正常工作。
EDIT2:我解决了我的问题。我想通过 VB 脚本在 Excel 之外运行这个程序。我运行它,之前没有打开 Excel。一切都正确删除。
解决方案
这是您的代码示例,对我来说效果很好:
Sub Test()
Dim app As New Excel.Application
Dim wb As Workbook
Dim path As String
path = "your path"
Set wb = app.Workbooks.Open(path & "\dati.xlsx")
'I know the filepath is correct as I can open and manipulate the file
'... Do things
wb.Sheets(1).Range("A1:E20").Copy
ThisWorkbook.Worksheets("Sheet1").Range("A10").PasteSpecial xlPasteValues
wb.Close
Set wb = Nothing
Kill path & "\dati.xlsx"
'I plan on adding error handling once the basic function works
End Sub
我创建了文件 dati.xlsx。我从 sheet1(文件 data.xlsx)复制范围 A1:E20 并将数据粘贴到 sheet1(宏在哪里)。结果是数据并删除文件data.xlsx
编写 Set wb.app 时在您的邮政编码中支付 Attantion .... 有一个错误...
推荐阅读
- latex - 在空白不敏感环境/Z-Notation Schema 中格式化 Latex 中的字符串
- angularjs - 在 AngularJS 和 restangular 中调用 rest API
- python - 如何修复 KeyError:mycode 中的 0
- sql - 计算sql中远程和本地集之间的差异
- python - re.sub 将模板转换为函数
- python-2.7 - 在 Python Shell 错误模块上运行 GrassGIS API 外部运行无
- boolean-logic - 带有嵌套与非门的布尔表达式?
- php - 将旧的 mysql 函数转换为使用 mysqli 扩展
- asp.net-web-api - WebForm 中 Web API 的说明
- python - 读取带有 1 和 0 的 .dat 会返回一些非常奇怪的东西