Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / изменять имена на дату изменения файла / Excel for VBA / 2 сообщений из 2, страница 1 из 1
06.03.2008, 17:58
    #35176703
Sunnych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменять имена на дату изменения файла / Excel for VBA
В наличии есть несколько папок:
D:\0401\Входящие\ - множество файлов *.xls
................................
D:\0423\Входящие\ - множество файлов *.xls
вот эти *.xls самые файлы мне и нужно во всех папках "Входящие" переименовать в дату изменения файла + добавить нумерацию "()"и к этому имени добавить название каталога который находиться на один уровень выше, пример 06.03.2008.(1).0423.xls , а если в наличии окажеться ещё один файл с такимже именем то 06.03.2008.(2).0423.xls и.т.д
Но остановился я на слудующем - в хелпах и нете нашёл море информации из которой "понял" (не полностью) как работает поиск
и вот на этом примере не могу понять каким образом дописать код,
1 - я должен, вместо вывода на экран сделай вызов фунции которая в качестве аргумента будет принимать имена файлов
2 - MyDateTime = FileDateTime("D:\TEMP\FileSearch\*.xls) эта функция из файла получает дату формирует имя и переименовывает файл
Подскажите в какую степь мне двигаться или где лучше поискать!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub rename()
Dim MyDateTime As Date
Set fs = Application.FileSearch
With fs
  .LookIn = "D:\TEMP\FileSearch\"
  .SearchSubFolders = True
  .FileType = msoFileTypeExcelWorkbooks
    If .Execute >  0  Then
    MsgBox "Число найденных файлов = " & .FoundFiles.Count
    For i =  1  To .FoundFiles.Count
     MsgBox .FoundFiles(i)
    Next i
  Else
    MsgBox "Нет файлов"
  End If
End With
но я так понял что без открытия и закрытия файла, переименование не возможно, вот до кое чего вроде как додумался но одну строчку выделяет красным (написано способом посмотрел везде и собрал всё вместе)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub rename()
Dim MyDateTime As Date
Dim Name As data
Set fs = Application.FileSearch
With fs
  .LookIn = "D:\TEMP\FileSearch\"
  .SearchSubFolders = True
  .FileType = msoFileTypeExcelWorkbooks
    If .Execute >  0  Then
        For i =  1  To .FoundFiles.Count
            Workbooks.Open (.FoundFiles(i))  ' открытие файлов
        Next i      
        MyDateTime = File.DateTimeDir(.FoundFiles(i))
           For i =  1  To .FoundFiles.Count
      Name .LookIn & Dir(.FoundFiles(i)) As .LookIn & MyDateTime & ".xls"    'вот эту строчку выделяет красным
   Next
    For i =  1  To .FoundFiles.Count
    Next i
  Else
    MsgBox "Нет файлов"
  End If
End With
...
Рейтинг: 0 / 0
06.03.2008, 20:38
    #35177020
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменять имена на дату изменения файла / Excel for VBA
Excel+VBA - выкинуть. Он тут не нужен.
Заняться изучением VBScript и его объекта FileSystemObject.
Открывать файлы для переименования не нужно совершенно. И даже более того - вредно. Открытый файл ты можешь только сохранить под новым именем, а переименовать - не сможешь.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / изменять имена на дату изменения файла / Excel for VBA / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]