ДОбрый день! Помогите пожалуйста создать макрос, который будет считывать информацию со всех файлов в определенной папке по следующему принципу!
Допустим в папке c:\temp находится 100 файлов (1.xlsm, 2.xlsm ...100.xlsm) - отсюда берем данные и еще один файл example.xlsm - сюда записываем данные Нужно чтобы 1) с ячейки b1 всех файлов (1.xlsm, 2.xlsm ...100.xlsm) записались данные в стобец b (1..100) в файл example.xlsm Ввиде значений или ссылок на файлы 2) в ячейки а1...а100 в файл example.xlsm записались названия этих файлов соответственно. Может ли кто-то помочь с таким макросом?
ДОбрый день! Помогите пожалуйста создать макрос, который будет считывать информацию со всех файлов в определенной папке по следующему принципу!
Допустим в папке c:\temp находится 100 файлов (1.xlsm, 2.xlsm ...100.xlsm) - отсюда берем данные и еще один файл example.xlsm - сюда записываем данные Нужно чтобы 1) с ячейки b1 всех файлов (1.xlsm, 2.xlsm ...100.xlsm) записались данные в стобец b (1..100) в файл example.xlsm Ввиде значений или ссылок на файлы 2) в ячейки а1...а100 в файл example.xlsm записались названия этих файлов соответственно. Может ли кто-то помочь с таким макросом?leskris
leskris, если в папке только нужные файлы, то можно так: [vba]
Код
Sub List_files() Application.ScreenUpdating = 0 With ThisWorkbook .Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents MyPath = "C:\files\" myName = Dir(MyPath, vbDirectory) i = 1 Do While myName <> "" If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then .Sheets(1).Cells(i, 1) = myName Set wb = Workbooks.Open(Filename:=MyPath & myName) .Sheets(1).Cells(i, 2) = wb.Sheets(1).Range("b1") wb.Close i = i + 1 End If myName = Dir Loop End With Application.ScreenUpdating = 1 End Sub
[/vba] Список формируется из файлов в "C:\files", замените этот адрес на свой
leskris, если в папке только нужные файлы, то можно так: [vba]
Код
Sub List_files() Application.ScreenUpdating = 0 With ThisWorkbook .Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents MyPath = "C:\files\" myName = Dir(MyPath, vbDirectory) i = 1 Do While myName <> "" If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then .Sheets(1).Cells(i, 1) = myName Set wb = Workbooks.Open(Filename:=MyPath & myName) .Sheets(1).Cells(i, 2) = wb.Sheets(1).Range("b1") wb.Close i = i + 1 End If myName = Dir Loop End With Application.ScreenUpdating = 1 End Sub
[/vba] Список формируется из файлов в "C:\files", замените этот адрес на свойManyasha
если я правильно понял код макроса, то он выводит название файлов только, а мне нужно конкретно значения ячейки с разных файлов в стобик. Во всяком случае мне выводит, только название файлов.
если я правильно понял код макроса, то он выводит название файлов только, а мне нужно конкретно значения ячейки с разных файлов в стобик. Во всяком случае мне выводит, только название файлов.leskris
Сообщение отредактировал leskris - Четверг, 27.08.2015, 14:35
leskris, может я не правильно поняла Ваш 1-й пункт? Макрос открывает файл, и копирует значение из ячейки b1 (с первого листа) в столбец b файла example. Т.е., в файле example на листе1 будет: В1 = файл1.Лист1.В1 В2 = файл2.Лист1.В1 В3 = файл3.Лист1.В1
Правильно?
leskris, может я не правильно поняла Ваш 1-й пункт? Макрос открывает файл, и копирует значение из ячейки b1 (с первого листа) в столбец b файла example. Т.е., в файле example на листе1 будет: В1 = файл1.Лист1.В1 В2 = файл2.Лист1.В1 В3 = файл3.Лист1.В1
это моя ошибка, я не правильно создал проверочные файлы, поэтому было пусто и я решил, что не работает, все впорядке. Спасибо!! чтобы тоже самое повторить с ячейкой с нужно [vba]
Код
.Sheets(1).Cells(i, 3) = wb.Sheets(1).Range("с1")
[/vba] так сделать?
это моя ошибка, я не правильно создал проверочные файлы, поэтому было пусто и я решил, что не работает, все впорядке. Спасибо!! чтобы тоже самое повторить с ячейкой с нужно [vba]