Страницы: 1
RSS
Собрать данные в реестр с разных папок и файлов ексель
 
Привет всем! Помогите! Необходимо собрать данные в реестр с разных папок и файлов ексель.

Есть папка ЧП а в ней десять папок с названиями контрагентов. В каждой из этих папок примерно 1300 файлов ексель имеющих одинаковое форматирование, и каждый месяц файлы прилагаются.

Суть в том, что необходимо в главной папке создать реестр данных на основе вышеупомянутых файлов, а именно:
1 строка ексель данные с 1-го файла (данные конкретиних яеек)
и тд.
Вручную это делать слишком долго ...
Был вариант получить все названия файлов из каталога, но как автоматически заменить в формуле не заню ....
 
Код
Sub Main()
    Dim sPath As String
    sPath = ThisWorkbook.Path    Dim dFile As Object
    Set dFile = GetFile(sPath)
    
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets(1)
    Dim r As Range
    Set r = sh.Cells(1, 1)    Dim f As Variant
    For Each f In dFile.Keys
        job_file f, r
        Set r = r.Cells(2, 1)
    Next
End Sub
'
Function GetFile(sPath As String) As Object
    Dim d As Object
    Set d = CreateObject("Scripting.Dictionary")
    
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    
    Dim p As Object
    Dim f As Object
    For Each p In fso.GetFolder(sPath).SubFolders
    For Each f In p.Files
        If fso.getExtensionname(f) Like "xls?" Then
            d.Item(CStr(f)) = fso.getfilename(f)
        End If
    Next
    Next
    Set GetFile = d
End Function
'
Sub job_file(ByVal sFull As String, r As Range)
    Dim wb As Workbook
    Set wb = Workbooks.Open(sFull, False, True)
    r.Cells(1, 1).Value = wb.Sheets(1).Cells(1, 1).Value
    r.Cells(1, 2).Value = wb.Sheets(1).Cells(1, 2).Value
    wb.Close False
End Sub
Как-то так.
 
Получить названия файлов не проблема!
Проблема в том :

есть строка 1 столбец B ='D:\PP\2 0 2 0 р\[Булботка № 1.xls]ЗАГ'!$K$6  а в столбце W адрес файла D:\PP\2 0 2 0 р\[Булботка № 1.xls]ЗАГ.xls
в строке 2 адрес файла есть (D:\PP\2 0 2 0 р\[Булботка № 2.xls]ЗАГ.xls) но как сделать так чтобы в формуле ='D:\PP\2 0 2 0 р\[Булботка № 1.xls]ЗАГ'!$K$6 был нужный файл что стоит в W2?
 
Видимо, Вам нужна формула ДВССЫЛ()
 
Цитата
МатросНаЗебре написал:
ДВССЫЛ()
Не могу понять как?
Страницы: 1
Наверх