Страницы: 1
RSS
Помогите написать цикл перебора листов с другой книги.
 
Добрый день! Суть проблемы такова. Нужен vba код, с помощью которого можно было перебрать все листы из другой книги, взять часть данных из них, и записать в новую. Я примерно понимаю как это делается, а вот сам написать точно не смогу. Есть книга в который от 28-ми до 31-го листа названия которых соответствуют числу месяца. На каждом таком листе есть диапазон данных которые нужны мне для последующей обработки. Алгоритм действия примерно такой. Открыть указанную книгу - перейти на лист № 1 - взять диапазон данных - положить данные в ячейки. И так действовать пока не закончатся листы.

Заранее спасибо!
 
Конкретики мало поэтому общий случай
Код
Dim iWb As Workbook
Dim iSh As Worksheet
Dim I&
Set iWb = Workbooks.Open("D:\Папка\Мой_файл.xlsx")  'Полный путь к файлу
For Each iSh In iWb.Worksheets
    I = I + 1
    iSh.UsedRange.Copy ThisWorkbook.ActiveSheet.Range("A" & I)
Next
Согласие есть продукт при полном непротивлении сторон
 
А если мне с каждого листа нужен диапазон B15:F16 то в какой строке мне нужно поменять значения?
 
Цитата
n0nsence написал: А если....
А сколько еще таких 'А если...'?
Потом вопрос будет - 'А если мне нужно вставлять не в столбец A'? И не в активный лист а в конкретный? И книгу нужно по запросу открывать? И т.д. и т.п.
По Вашему вопросу я понял, что Вам нужна теоретическая подсказка - дальше сами
Согласие есть продукт при полном непротивлении сторон
 
По моему вопросу был конкретный диапазон с каждого листа. Но все равно спасибо Вам что откликнулись!
 
Цитата
n0nsence написал: По моему вопросу был конкретный диапазон с каждого листа
10 раз перечитал ПЕРВЫЙ пост. ГДЕ там конкретный диапазон!? Но все равно пожалуйста
Изменено: Sanja - 01.02.2018 10:46:44
Согласие есть продукт при полном непротивлении сторон
 
Сам перечитал пару раз. Действительно Вы правы. Была речь о диапазоне данных, но не о конкретном. Видимо, потому что я знаю суть задачи, для меня этот вопрос принимается совсем иначе. В данном случае копируется весь рабочий диапазон. Прошу прощения что изначально не совсем корректно разъяснил суть.
 
7-ю строку кода перепишите так
Код
iSh.Range("B15:F16").Copy ThisWorkbook.ActiveSheet.Range("A" & I)
Изменено: Sanja - 01.02.2018 11:02:47
Согласие есть продукт при полном непротивлении сторон
 
Сам пробовал над ней колдовать, но ничего не получалось. Видимо, из-за не достатка (точнее отсутствия) знаний по vba.
Очень помогли.
Спасибо ОГРОМНОЕ!
Все работает как надо!)
Страницы: 1
Читают тему
Наверх