Страницы: 1
RSS
Как открыть несколько файлов, Только макросом
 
Подскажите как открыть несколько файлов Excel находящихся в одном каталоге, скопировать из каждого файла ячейку D5 и вставить значения в рабочую книгу на лист "Акт" в ячейки D51,D52,D53 и так далее в зависимости от количества открытых файлов и после этого открытые файлы закрыть. Заранее спасибо.
 
1. Название листа во всех файлах одинаковое? Какое?
2. Файлы можно не открывать:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=40419
http://www.cyberforum.ru/vba/thread157325.html
http://excelvba.ru/code/GetValue

и т.д.
Изменено: Казанский - 20.05.2013 10:06:28
 
Вот нашел такой код, он меня практически почти устраивает, но
Код
Private Sub Main()
    Dim path As String, file As String, arg As String, i As Long
    Application.ScreenUpdating = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Укажите рабочую папку": .Show
        If .SelectedItems.Count = 0 Then Exit Sub Else path = .SelectedItems(1) & "\"
    End With
    Rows("2:" & Rows.Count).ClearContents: file = Dir(path & "*.xls"): i = 10
    Do While file <> ""
        Cells(i, 4) = ExecuteExcel4Macro("'" & path & "[" & file & "]" & "Лист1'!" & Range("H13").Range("A1").Address(, , xlR1C1))
        Cells(i, 2) = ExecuteExcel4Macro("'" & path & "[" & file & "]" & "Лист1'!" & Range("B19").Range("A1").Address(, , xlR1C1))
        i = i + 1: file = Dir
    Loop
End Sub

Если не сложно, как его можно изменить чтобы не нужно было указывать рабочую папку, а собирать данные из той же папки где лежит главный (общий) файл?? Спасибо
 
Код
With Application.FileDialog(msoFileDialogFilePicker)
   .AllowMultiSelect=True
   .InitialFileName=ThisWorkbook.Path

End With
 
А что значит строчка:
Код
Rows("2:" & Rows.Count).ClearContents: file = Dir(path & "*.xls"): i = 10
Не могу разобраться...
 
halloween,
очистить строки от второй до последней
получить первый файл по указанной маске
присвоить переменной i значение 10
 
Всё ясно с этим, спасибо! Двоеточием на VBA разделяются команды, написанные на одной строчке — как точка с запятой на С++, получается?
А что за команда ExecuteExcel4Macro? Качественно загуглить не вышло...
Код
Cells(i, 4) = ExecuteExcel4Macro("'" & path & "[" & file & "]" & "Лист1'!" & Range("H13").Range("A1").Address(, , xlR1C1))
 
Да ладно... Как можно некачественно загуглить? Что, так ещё и булочки называются? :)
Это так сказать замена формулы листа в коде.
https://msdn.microsoft.com/en-us/library/office/ff193589.aspx
Изменено: Hugo - 21.11.2015 18:38:06
Страницы: 1
Наверх