Доброго времени суток товарищи!!!Подскажите пожалуйста,как привязать макрос сборки листов по названиям листа в таблице. Есть 3 столбца в листе "МЕНЮ" и у каждого свои листы,необходимо при нажатии кнопки,например в столбце A макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"в столбцы c B3 по J3. поиском нашёл такой макрос сбора,но увы не знаю как его привязать с таким условием [vba]
Код
Sub sborka() If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then Sheets(1).Range("a1").CurrentRegion.Clear s_ = Sheets.Count Sheets(2).Range("1:1").Copy Sheets(1).Range("a1") For i = 2 To s_ r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1 Sheets(i).Range("a1").CurrentRegion.Offset(1).Copy Sheets(1).Range("a" & r_) Next End If End Sub
[/vba]
Доброго времени суток товарищи!!!Подскажите пожалуйста,как привязать макрос сборки листов по названиям листа в таблице. Есть 3 столбца в листе "МЕНЮ" и у каждого свои листы,необходимо при нажатии кнопки,например в столбце A макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"в столбцы c B3 по J3. поиском нашёл такой макрос сбора,но увы не знаю как его привязать с таким условием [vba]
Код
Sub sborka() If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then Sheets(1).Range("a1").CurrentRegion.Clear s_ = Sheets.Count Sheets(2).Range("1:1").Copy Sheets(1).Range("a1") For i = 2 To s_ r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1 Sheets(i).Range("a1").CurrentRegion.Offset(1).Copy Sheets(1).Range("a" & r_) Next End If End Sub
макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"
Вам надо определить список листов, с которых собирать данные. Возьмите за основу такой макрос, для столбца А листа МЕНЮ [vba]
Код
Sub Sbor() Dim i As Integer Dim iLR As Integer Dim iLastRow As Integer Dim iName As String Dim Spisok As Worksheet Set Spisok = Worksheets("СПИСОК") iLR = Range("A2").End(xlDown).Row For i = 3 To iLR iName = Cells(i, 1) With Worksheets(iName) iLastRow = Spisok.Cells(Rows.Count, 5).End(xlUp).Row + 1 .Range("A1").CurrentRegion.Copy Spisok.Cells(iLastRow, 1) End With Next End Sub
[/vba]
Цитата
макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"
Вам надо определить список листов, с которых собирать данные. Возьмите за основу такой макрос, для столбца А листа МЕНЮ [vba]
Код
Sub Sbor() Dim i As Integer Dim iLR As Integer Dim iLastRow As Integer Dim iName As String Dim Spisok As Worksheet Set Spisok = Worksheets("СПИСОК") iLR = Range("A2").End(xlDown).Row For i = 3 To iLR iName = Cells(i, 1) With Worksheets(iName) iLastRow = Spisok.Cells(Rows.Count, 5).End(xlUp).Row + 1 .Range("A1").CurrentRegion.Copy Spisok.Cells(iLastRow, 1) End With Next End Sub
Вам нужно в макросе циклом пройтись по этому списку. Исправьте ошибку в ваших кодах: Для Sub SborA() iName = Cells(i, 1) Для Sub SborB() iName = Cells(i, 2) Для Sub SborC() iName = Cells(i, 3) Удачи!
Цитата
Список листов и есть в столбце А,В,С
Вам нужно в макросе циклом пройтись по этому списку. Исправьте ошибку в ваших кодах: Для Sub SborA() iName = Cells(i, 1) Для Sub SborB() iName = Cells(i, 2) Для Sub SborC() iName = Cells(i, 3) Удачи!Kuzmich