我当前正在编写一个程序,在该程序中,我将一个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':权限被拒绝
任何帮助将不胜感激。我已经有一段时间没有编写VBA脚本了,但是我对更好的方面并不完全熟悉。
编辑:我想添加一些信息。经过调试之后,我可以说我可以成功销毁该对象,但是Excel进程在后台保持打开状态,我必须在任务管理器中手动将其杀死才能使代码正常工作。
EDIT2:有趣的是我解决了我的问题。我想通过VB脚本在excel之外运行该程序,而我尝试通过该程序运行它,而以前没有打开excel。然后,它正常工作,所有内容都会正确删除。不想让任何人遇到同样的问题。
答案 0 :(得分:0)
这是您的代码示例,对我来说很好用:
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。 有一个错误...