2015-12-11 3 views
2

В приведенном ниже excel 2010 vba, если ответ на приглашение нет, то файлы в папке te, то папка будет удалена. Тем не менее, я получаю path/file access error, когда я запускаю vba. В частности, выделена строка 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

Так что изменения действительно сработали, но теперь я получаю файл, который не найден в строке 'Kill MyFile', но есть 3 файла txt в каталоге для удаления. Спасибо :). – Chris

+0

Странно ... Я не изменил часть, касающуюся 'Kill', она просто должна фильтровать текстовые файлы ... Удачи вам в этом! ;) – R3uK

0

Excel VBA, чтобы файлы зависит от того, если Excel запущен с или без прав администратора. Найдите EXCEL.EXE и запустите его с помощью или без щелчка правой кнопкой мыши и с правами администратора. Проверьте, что делает ваш VBA. С правами администратора создайте текстовый файл. Затем попробуйте открыть этот файл без прав администратора. Хотя это может иметь значение, в какой папке вы делаете этот тест.