Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel 2010 vba,路径/文件访问错误_Vba_Excel_Dir - Fatal编程技术网

excel 2010 vba,路径/文件访问错误

excel 2010 vba,路径/文件访问错误,vba,excel,dir,Vba,Excel,Dir,在下面的Excel2010VBA中,如果回答为“否”,则会删除te文件夹中的文件,然后删除该文件夹。但是,当我运行vba时,我得到一个路径/文件访问错误。具体地说,RmDir MyFolder行高亮显示,但是当我单步执行代码时,变量MyFolder中会显示正确的目录,我可以将新文件写入该目录。我错过了什么?谢谢:) 此外,如果手动导航到该目录,则可以将其删除 iYesNo = MsgBox("Do the patients and barcode match the setup sheet?",

在下面的
Excel2010VBA
中,如果回答为“否”,则会删除te文件夹中的文件,然后删除该文件夹。但是,当我运行
vba
时,我得到一个
路径/文件访问错误。具体地说,
RmDir MyFolder
行高亮显示,但是当我单步执行代码时,变量
MyFolder
中会显示正确的目录,我可以将新文件写入该目录。我错过了什么?谢谢:)

此外,如果手动导航到该目录,则可以将其删除

iYesNo = MsgBox("Do the patients and barcode match the setup sheet?", vbYesNoCancel)
      Select Case iYesNo
             Case vbYes
             GoTo Line2
             Case vbNo
             MsgBox ("Doesn't match! Please enter again")
             MyFolder = Directory ' delete all txt files in the folder
             MyFile = Dir(MyFolder & "*.*")
             Do Until MyFile = ""
             Kill MyFile
             MyFile = Dir
             Loop

               RmDir MyFolder  ' delete folder
             GoTo Line1
       End Select

您很可能在末尾有一个
/
阻止您删除文件夹,请参阅更正

此外,您还可以将
Dir(…)
更改为仅选择
txt
文件,以避免删除其余文件

代码如下:

iYesNo = MsgBox("Do the patients and barcode match the setup sheet?", vbYesNoCancel)
Select Case iYesNo
    Case vbYes
        GoTo Line2
    Case vbNo
        MsgBox ("Doesn't match! Please enter again")
        MyFolder = Directory ' delete all txt files in the folder
        MyFile = Dir(MyFolder & "*.txt")
        Do Until MyFile = ""
            Kill MyFile
            MyFile = Dir
        Loop

        RmDir Left(MyFolder, Len(MyFolder) - 1) ' delete folder
        GoTo Line1
End Select

Excel VBA对文件的访问权限取决于Excel启动时是否具有管理员权限。找到EXCEL.EXE并以管理员身份启动它(无论是否右键单击)。检查VBA的功能。具有管理员权限,可以创建文本文件。然后尝试在没有非管理员权限的情况下打开该文件。虽然您在哪个文件夹中执行此测试可能很重要。

因此更改确实起作用,但是现在我在
Kill MyFile
行中找不到一个文件,但目录中有3个txt文件要删除。谢谢:)。奇怪。。。我没有更改关于
Kill
的部分,它只是应该过滤文本文件。。。祝你好运