Я не эксперт, но Run-time error '5 обычно указывает на недопустимый вызов процедуры или аргумент. В вашем случае эта ошибка может быть вызвана попыткой использовать функцию Dir для папки, а не для файла.
Чтобы решить эту проблему, вам следует убедиться, что вы работаете с допустимыми путями к файлам. Функция Dir используется для получения первого имени файла или папки по указанному пути. Если вы пытаетесь получить имена файлов из выбранных элементов, вам следует убедиться, что эти элементы являются допустимыми путями к файлам.
Вот модифицированная версия вашего кода, которая перед использованием Dir проверяет, являются ли выбранные элементы файлами:
Код |
---|
Sub IMPORT()
Dim File As Object, MyPath As String, sFile As String
Set File = Application.FileDialog(msoFileDialogFilePicker)
With File
.Title = "ВЫБЕРИТЕ ФАЙЛЫ ДЛЯ ЗАГРУЗКИ (ДО 10 ФАЙЛОВ)"
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "Excel Files", "*.xls*"
.InitialFileName = "ФАЙЛЫ"
If .Show <> -1 Then Exit Sub
For i = 1 To .SelectedItems.Count
If FileLen(.SelectedItems(i)) > 0 Then
Sheets("BINO").Range("A" & i).Value = Dir(.SelectedItems(i))
Else
MsgBox "Invalid file path: " & .SelectedItems(i), vbExclamation
End If
Next i
MyPath = Left(.SelectedItems(1), Len(.SelectedItems(1)) - Len(Dir(.SelectedItems(1))))
End With
End Sub |