powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / изменять имена на дату изменения файла / Excel for VBA
2 сообщений из 2, страница 1 из 1
изменять имена на дату изменения файла / Excel for VBA
    #35176703
Sunnych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В наличии есть несколько папок:
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
изменять имена на дату изменения файла / Excel for VBA
    #35177020
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel+VBA - выкинуть. Он тут не нужен.
Заняться изучением VBScript и его объекта FileSystemObject.
Открывать файлы для переименования не нужно совершенно. И даже более того - вредно. Открытый файл ты можешь только сохранить под новым именем, а переименовать - не сможешь.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / изменять имена на дату изменения файла / Excel for VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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