1. Есть скрипт:
Код:
- Код: Выделить всё
Dim ВыбранныйФайл As Variant
'Picker - Сборщик
With Application.FileDialog(msoFileDialogFilePicker)
'если = True, тогда есть возможность выбрать несколько файлов
.AllowMultiSelect = True
'имя, которое будет указано на кнопке
.ButtonName = "ZER GUT"
'поле Тип файлов
.Filters.Add "Файлы Microsoft Office", "*.xls; *.xlsx"
'имя формы
.Title = "Выберите файлы"
'место, на каком диске или папке будет отображаться форма
.InitialFileName = "L:\Изменённые"
'отобразить форму
.Show
'
'количество выбранных файлов, если нажали отмена получим SelectedItems.Count = 0
Debug.Print .SelectedItems.Count
For Each ВыбранныйФайл In .SelectedItems
'путь к файлу с именем файла
Debug.Print ВыбранныйФайл
'имя файла
Debug.Print Dir(ВыбранныйФайл)
Next ВыбранныйФайл
End With
2
есть скрипт:
Код:
- Код: Выделить всё
'предварительно нужно добавить ссылку на Microsoft Excel 12.0 Object Library
Dim ExApp As New Excel.Application
Dim vFileName As Variant
vFileName = ExApp.GetOpenFilename("Несколько типов файлов (*.bas; *.txt),*.bas;*.txt", , "Выбери себе файл или несколько файлов", , True)
If vFileName = False Then 'выбрал я на диске L txt файл, нажал кнопку открыть, имею - ошибка 13 Type mismath почему?Я идиот! Убейте меня, кто-нибудь!???
MsgBox "Необходимо выбрать файл!"
Else
MsgBox "Выбрали: " & sFileName
End If
Exit Sub
'завершаем Excel
ExApp.Quit
там вопрос имеется в теле макроса:
'выбрал я на диске L txt файл, нажал кнопку открыть, имею - ошибка 13 Type mismath почему?Я идиот! Убейте меня, кто-нибудь!???
4
есть скрипт:
Код:
- Код: Выделить всё
'предварительно нужно добавить ссылку на Microsoft Excel 12.0 Object Library
Dim ExApp As New Excel.Application
Dim vFileName As Variant
Dim fso As Object, f As Object, FilesToRename
Dim k%
Dim Полный_путь_к_файлу As String
Dim Имя_файла_с_расширением As String
Dim Имя_файла_без_расширения As String
Dim Расширение_файла As String
'выбор файлов для переименования
FilesToRename = ExApp.GetOpenFilename(, , "Выбери себе файл", , True)
'условие, если выбран хотя бы один файл
If IsArray(FilesToRename) Then
Set fso = CreateObject("Scripting.FileSystemObject")
'для каждого выбранного файла
For k = 1 To UBound(FilesToRename)
Set f = fso.GetFile(FilesToRename(k))
'путь к файлу, имя файла с расширением
Полный_путь_к_файлу = f.Path
Debug.Print Полный_путь_к_файлу
Имя_файла_с_расширением = f.Name
Имя_файла_без_расширения = CreateObject("Scripting.FileSystemObject").GetBaseName(f.Name)
Расширение_файла = CreateObject("Scripting.FileSystemObject").GetExtensionName(f)
'переименование файла
'чтобы не было ошибки
'58 File already exists Файл уже существует
'нужно переименовывать файл
f.Name = "0000000000" & f.Name
'перемещаем файл
'если имя файла менять не надо, тогда можно указать только папку - f.Move "L:\Изменённые\"
f.Move "L:\Изменённые\" & f.Name
Set f = Nothing
Next k
Set fso = Nothing
Erase FilesToRename
End If
'завершаем Excel
ExApp.Quit
5
какое различие у скрипта 1 и 3??? вроде оба делают одно и тоже
6
какой из них лучше подходит для переименования файлов???
Спасибо