2015-12-11 207 views
2

在下面的excel 2010 vba如果答案提示为否,则TE文件夹中文件,然后将文件夹都将被删除。但是,当我运行vba时,我得到path/file access error。特别是RmDir MyFolder行会突出显示,但是当我逐步浏览代码时,正确的目录将出现在变量MyFolder中,我可以将新文件写入目录。我错过了什么?谢谢 :)。Excel 2010中的VBA,路径/文件访问错误

此外,如果我手动导航到目录,我可以删除它。

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 

回答

2

最有可能有/在最后,防止您删除该文件夹,请参阅更正。

此外,您可以将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 
+0

这样的变化没有工作但现在我得到的'杀MyFile'线没有找到一个文件,但有3个txt文件中删除该目录。谢谢 :)。 – Chris

+0

奇怪......我没有更改关于“Kill”的部分,它只是用于过滤文本文件...祝您好运! ;) – R3uK

0

Excel VBA中对文件的访问权限取决于Excel是否与或没有管理员权限启动。找到EXCEL.EXE并启动它,不管是否有右键单击和以管理员身份运行。检查你的VBA做什么。有了管理员权限,它可以创建一个文本文件。然后尝试打开没有非管理员权限的文件。虽然它可能无论你做什么文件夹此试验。