很抱歉,如果已经在其他地方得到了解答,我找不到与我有同样问题的人。
我有一个Excel程序,它依赖于阅读,追加和创建文本文件。自启动此项目以来我遇到的一个问题是有时,每运行10到100次代码,我得到一个“运行时错误'70':权限被拒绝”错误时试图杀死/删除文本文件。
我已经对错误代码做了一些研究,但这并没有多大帮助。我没有得到的是为什么它在大多数时间都有效。如果我尝试继续执行代码,它就可以正常工作。
早些时候,我已经推测,在Excel试图杀死它之前,文件有时没有时间关闭。我尝试创建一个等待文件关闭的函数,所以除非我的代码不起作用,否则我认为这不是问题。
这是关闭和删除文件的代码。注意,它始终停止在“Kill”命令上。 “isFileOpen”和“dir”命令只是检查错误是否是由于1)文件尚未关闭,以及2)文件尚未被删除。
Close textfileorg
Close textfileNew
'Erstatter gammelt reg med nytt reg
Do While isFileOpen(filepathorg): Loop
Kill filepathorg
Do While dir(filepathorg) <> "": Loop
Do While isFileOpen(filepath): Loop
Kill filepath
Do While dir(filepath) <> "": Loop
Name filepathNew As filepathorg
如果相关,这是我的“文件打开”检查:
Function isFileOpen(ByRef filepath As String)
Dim textfile As Integer
textfile = FreeFile
On Error GoTo fileOpenErr
'Forsøker å åpne fil
Open filepath For Random As textfile
Close textfile
'Om ok, returner at fil ikke er åpen
isFileOpen = False
Exit Function
'Ved error, returner at fil var åpen
fileOpenErr:
isFileOpen = True
End Function
我想通过使用
行代码可以避免这个问题failToKillFile:
application.wait(time)
resume
但我觉得这只是避免了这个问题。即使我要使用此代码,我想知道为什么错误发生在第一位。谢谢你的帮助。
编辑:正如我发布的那样,我在尝试复制文件时遇到了类似的错误,副本必须替换文件。按继续,一切正常。
答案 0 :(得分:1)
将代码更改为all.equal(unnest(x_mp),unnest(x))
x_mp
TRUE
# A tibble: 10 x 2
id stat_summary
<int> <list>
1 3 <tibble [1 x 6]>
2 5 <tibble [1 x 6]>
3 6 <tibble [1 x 6]>
4 7 <tibble [1 x 6]>
5 1 <tibble [1 x 6]>
6 2 <tibble [1 x 6]>
7 4 <tibble [1 x 6]>
8 8 <tibble [1 x 6]>
9 9 <tibble [1 x 6]>
10 10 <tibble [1 x 6]>
行
到client.connect();
async function rows() {
await client.query("SELECT * FROM accounts WHERE proceeded = false",
function (err, result) {
return result.rows.length;
});
}
while (parseInt(rows(),10) > 0) {
do some work
}
完整代码https://support.microsoft.com/en-us/help/291295/macro-code-to-check-whether-a-file-is-already-open
答案 1 :(得分:0)
我刚刚遇到了同样的问题,权限(显然)被随机拒绝但是......
它发生在我身上,因为在我想要删除的文件夹上打开了一个资源管理器窗口。
是的,就是这样。答案 2 :(得分:0)
我遇到了这个问题,直到我将kill命令移到一个单独的子例程并从主例程调用它的情况下,似乎没有什么解决方案...
Sub KillWB()
Dim UPath As String, WB As String
UPath = "C:\Users\" & Environ("username")
WB = UPath & "\Temp.xlsx"
Kill WB
End Sub