День добрый!помогите пожалуйста допилить код оглавление одно и тоже,брать только до итого(это работает) но шапка тоже попадает в общую файл пример прилагается как должно быть
[vba]
Код
Sub sborka2() Dim sht As Worksheet Dim I As Long, k As Long, j As Long If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then Sheets(1).Range("a1").CurrentRegion.Clear Sheets(2).Cells(1, 1).Resize(, 2).Copy Sheets(1).Cells(1, 1) For Each sht In ActiveWorkbook.Worksheets i_n = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row If sht.Index <> 1 Then I = 1 Do I = I + 1 Loop While sht.Cells(I, 1) <> "ИТОГО" sht.Cells(2, 1).Resize(I - 2, 4).Copy Worksheets(1).Cells(i_n + 1, 1) End If Next sht End If End Sub
[/vba]
День добрый!помогите пожалуйста допилить код оглавление одно и тоже,брать только до итого(это работает) но шапка тоже попадает в общую файл пример прилагается как должно быть
[vba]
Код
Sub sborka2() Dim sht As Worksheet Dim I As Long, k As Long, j As Long If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then Sheets(1).Range("a1").CurrentRegion.Clear Sheets(2).Cells(1, 1).Resize(, 2).Copy Sheets(1).Cells(1, 1) For Each sht In ActiveWorkbook.Worksheets i_n = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row If sht.Index <> 1 Then I = 1 Do I = I + 1 Loop While sht.Cells(I, 1) <> "ИТОГО" sht.Cells(2, 1).Resize(I - 2, 4).Copy Worksheets(1).Cells(i_n + 1, 1) End If Next sht End If End Sub
На листе Свод строки с 6-ой и далее д.б. очищены [vba]
Код
Sub Sborka() Dim Sht As Worksheet Dim iLastRow As Long Dim FoundCell As Range Dim Row_Itogo As Long Dim dict As Object For Each Sht In Worksheets 'цикл по всем листам If Sht.Name <> "Свод" Then With Sht Set FoundCell = .Columns("A").Find("ИТОГО", , xlValues, xlWhole) 'поиск слова ИТОГО If Not FoundCell Is Nothing Then Row_Itogo = FoundCell.Row iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range(.Cells(6, 1), .Cells(Row_Itogo - 1, "D")).Copy Cells(iLastRow, "A") End If Set FoundCell = Nothing End With End If Next End Sub
[/vba] И нет данных о: ниже могут содержаться дополнительные таблицы
На листе Свод строки с 6-ой и далее д.б. очищены [vba]
Код
Sub Sborka() Dim Sht As Worksheet Dim iLastRow As Long Dim FoundCell As Range Dim Row_Itogo As Long Dim dict As Object For Each Sht In Worksheets 'цикл по всем листам If Sht.Name <> "Свод" Then With Sht Set FoundCell = .Columns("A").Find("ИТОГО", , xlValues, xlWhole) 'поиск слова ИТОГО If Not FoundCell Is Nothing Then Row_Itogo = FoundCell.Row iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range(.Cells(6, 1), .Cells(Row_Itogo - 1, "D")).Copy Cells(iLastRow, "A") End If Set FoundCell = Nothing End With End If Next End Sub
[/vba] И нет данных о: ниже могут содержаться дополнительные таблицыKuzmich
после нажатия кнопки идёт повтор,а не чистка предыдущей
Я вам написал, что
Цитата
На листе Свод строки с 6-ой и далее д.б. очищены
Это действие можно прописать в макросе [vba]
Код
Sub Sborka() Dim Sht As Worksheet Dim iLastRow As Long Dim FoundCell As Range Dim Row_Itogo As Long iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 Range("A6:D" & iLastRow).Clear For Each Sht In Worksheets 'цикл по всем листам If Sht.Name <> "Свод" Then With Sht Set FoundCell = .Columns("A").Find("ИТОГО", , xlValues, xlWhole) 'поиск слова ИТОГО If Not FoundCell Is Nothing Then Row_Itogo = FoundCell.Row iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range(.Cells(6, 1), .Cells(Row_Itogo - 1, "D")).Copy Cells(iLastRow, "A") End If Set FoundCell = Nothing End With End If Next End Sub
[/vba]
Цитата
после нажатия кнопки идёт повтор,а не чистка предыдущей
Я вам написал, что
Цитата
На листе Свод строки с 6-ой и далее д.б. очищены
Это действие можно прописать в макросе [vba]
Код
Sub Sborka() Dim Sht As Worksheet Dim iLastRow As Long Dim FoundCell As Range Dim Row_Itogo As Long iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 Range("A6:D" & iLastRow).Clear For Each Sht In Worksheets 'цикл по всем листам If Sht.Name <> "Свод" Then With Sht Set FoundCell = .Columns("A").Find("ИТОГО", , xlValues, xlWhole) 'поиск слова ИТОГО If Not FoundCell Is Nothing Then Row_Itogo = FoundCell.Row iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range(.Cells(6, 1), .Cells(Row_Itogo - 1, "D")).Copy Cells(iLastRow, "A") End If Set FoundCell = Nothing End With End If Next End Sub