Страницы: 1
RSS
VBA Список названий файлов из директории в массив, Нужно получить названия файлов в заданной директории и записать их в массив
 
Нужно получить названия файлов в заданной директории и записать их в динамический массив, недавно начал изучать VBA, и не могу придумать как это сделать.
 
Цитата
Sam_nit пишет:
не могу придумать как это сделать.
Читать форум. Примеров полно, поиск работает.
Я сам - дурнее всякого примера! ...
 
Пытался пользоваться поиском, нужного не обнаружил. Мне нужен конкретный кусок кода, где путь прописывается в ручную. А не готовый макрос.
 
http://excelvba.ru/code/FilenamesCollection
 
все равно не совсем то, тем более ругается на метод:
Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
                            Optional ByVal SearchDeep As Long = 999) As Collection

method or data member not found
 
Просмотреть все файлы в папке
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Таак, насколько я понял,
Код
Sub Get_All_File_from_Folder()
    Dim sFolder As String, sFiles As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
       [QUOTE] 'открываем книгу
        Workbooks.Open sFolder & sFiles
        'действия с файлом
        'Запишем на первый лист книги в ячейку А1 - www.excel-vba.ru
        ActiveWorkbook.Sheets(1).Range("A1").Value = "www.excel-vba.ru"
        ActiveWorkbook.Close True[/QUOTE] [SIZE=5]на сколько я понял вместо этого надо поставить мой массив, мне так сложно вникать в синтаксис([/SIZE]
        sFiles = Dir
    Loop
    Application.ScreenUpdating = True
End Sub
Изменено: Sam_nit - 22.05.2013 21:11:36
 
Помогите в вышестоящий код впихнуть массив Dir names() As String ))
 
Цитата
Sam_nit пишет:
Мне нужен конкретный кусок кода, где путь прописывается в ручную. А не готовый макрос.
Я сам - дурнее всякого примера! ...
 
ии??
 
Что и? Вам дали конкретный кусок кода для перебора файлов в папке. Готовый макрос Вам был НЕ НУЖЕН - сами написали. Так вот изучайте, меняйте, дорабатывайте под свои нужды самостоятельно. Как и просили.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Там было такоее маааленькое слово "путь" он же путь к папке. Собственно я имел в виду только это. А не то что вроде бы в макросе перебор есть, но выполняет он не то что нужно. Доработать можно, но знаний моих не хватит, собственно помощь в этом я и просил
 
Цитата
Sam_nit пишет:
Мне нужен конкретный кусок кода, где путь прописывается в ручную.
Цитата
Sam_nit пишет:
Там было такоее маааленькое слово "путь" он же путь к папке. Собственно я имел в виду только это.
Да пожалуйста:
Код
s = InputBox("Ввведите полный путь к папке", "Путь")

Вопрос исчерпан?
Я сам - дурнее всякого примера! ...
 
Вариант.
 
Окей спасибо всем
 
Всем привет. Подниму тему спустя года)
Очень прошу вашей помощи. Задача очень похожая, но необходимо что бы вывод файлов происходил в одной ячейке - http://prntscr.com/ngtweg
Т.е. в одном столбце указан путь, а в соседнем в одной ячейке все файлы. Последний вариант от Моти очень похож, но все в отдельных ячейках и обрабатывает только первую строку, а у меня их подряд около 100. Помогите, пожалуйста)
 
Код
Sub mmmmm()
Application.ScreenUpdating = False


Dim Put_File, PAPKA, STROKA, NOMER As Variant
Dim II As Integer


Range("F2:G65000").Select
Selection.Delete Shift:=xlUp
For i = 2 To 100

PAPKA = Trim(Cells(i, 1).Value)

Put_File = PAPKA + "\"

Dim FS, KATALOG, FILE, MASSIV As Object
Set FS = CreateObject("Scripting.FileSystemObject")
Set KATALOG = FS.GetFolder(Put_File)
Set MASSIV = KATALOG.Files
STROKA = 2
NOMER = 1
    For Each FILE In MASSIV '
        Cells(STROKA, 7).Value = Cells(STROKA, 7).Value & vbNewLine & FILE
       
    Next
    

Next i
MsgBox "READY"
Application.ScreenUpdating = True
End Sub


Наверное как-то так
Изменено: PDO - 25.04.2019 20:14:21
 
Цитата
PDO написал:
Наверное как-то так
Низкий вам поклон. Но я так понял он обрабатывает только первую ячейку (А2)? Добавляю еще несколько ниже и напротив пусто. Возможно что бы он по всему столбцу A проходил и напротив выводил файлы?
 
Код
Sub mmmmm()
Application.ScreenUpdating = False
 


Dim Put_File, PAPKA, STROKA, NOMER As Variant
Dim II As Integer
 
 
Range("F2:G65000").Select
Selection.Delete Shift:=xlUp

For i = 2 To 100
 
PAPKA = Trim(Cells(i, 1).Value)
 
Put_File = PAPKA + "\"
 
Dim FS, KATALOG, FILE, MASSIV As Object
Set FS = CreateObject("Scripting.FileSystemObject")
Set KATALOG = FS.GetFolder(Put_File)
Set MASSIV = KATALOG.Files
STROKA = i
NOMER = 1
    For Each FILE In MASSIV '
        Cells(STROKA, 7).Value = Cells(STROKA, 7).Value & vbNewLine & FILE
        
    Next
     
 
Next i
MsgBox "READY"
Application.ScreenUpdating = True
End Sub



Можно попробовать так, думаю норм (в том макросе забыл поправить номер строки).  
Изменено: PDO - 25.04.2019 20:33:07
 
Цитата
PDO написал:
Можно попробовать так, думаю норм (в том макросе забыл поправить номер строки).
Спасибо еще раз огромное, все работает. Чудо-форум!
Страницы: 1
Наверх