2015-09-03 5 views
0

У меня проблема с переименованием файлов в vba.Переименование файлов с помощью VBA

Я знаю только определенную часть имени файла, например, что он начинается со счастливого. Я хочу, чтобы иметь возможность переименовывать этот файл во все, что захочу. Будет только один файл с именем happy *. У меня есть следующий код, но это дает мне «Файл не найдено» ошибку на имя ffile Как NewName

Sub ReNaming() 

Dim ffile As String 

ffile = Dir("h:\folder1\happy*") 
NewName = "yellow.xlsx" 
Name ffile As NewName 


End Sub 

Я знаю, что это, вероятно, не правильный способ делать это, но подстановочную часть проблемы вызывают все проблемы!

Любая помощь будет отличной.

Благодаря

ответ

1

Проблема в том, что Dir() возвращает имя файла, но не полный путь. Вы можете поместить Debug.Print ffile после Dir, чтобы увидеть, что он возвращает. Если этот файл не существует в каталоге, в котором запущен ваш скрипт VBA, вы получите эту ошибку. Вы можете сделать что-то вроде:

Sub ReNaming() 

    Dim ffile As String 
    Dim pathname As String 

    pathname = "h:\folder1\" 
    ffile = Dir(pathname & "happy*") 
    ffile = pathname & ffile 
    NewName = "yellow.xlsx" 
    Name ffile As pathname & "NewName" 'or just "NewName" if you *want* to change the folder 
End Sub 
+0

Спасибо, это сработало удовольствие :) – GSmith

3

Это, вероятно, лучше, чтобы быть конкретным и тщательно, как вы можете быть на основе имеющейся информации.

ffile = Dir("h:\folder1\happy*.xlsx") 
NewName = "yellow.xlsx" 
Name "h:\folder1\" & ffile As "h:\folder1\" & NewName 

Хотя .xlsx не надо, это не имеет никакого смысла, чтобы быть переименовывать ничего, что не было .xlsx учебное пособие к .xlsx книге.

Смежные вопросы