Доброго времени суток светлым умам форума. Ребят, может кто поможет, проблема такова: есть книга с листами, листы это даты дня, то есть в книге 365 листов и 1 лист главный, называется "в работе". В листах дней хранятся заявки, в заявках есть условия: выполнена,в работе, не передана, отказана, так вот хотелось бы, что бы строка с условием " в работе" копировалась на лист с аналогичной таблицей под названием " в работе". пример в файле.
Доброго времени суток светлым умам форума. Ребят, может кто поможет, проблема такова: есть книга с листами, листы это даты дня, то есть в книге 365 листов и 1 лист главный, называется "в работе". В листах дней хранятся заявки, в заявках есть условия: выполнена,в работе, не передана, отказана, так вот хотелось бы, что бы строка с условием " в работе" копировалась на лист с аналогичной таблицей под названием " в работе". пример в файле.PORTANDREW
Sub ertert() Dim wsh As Worksheet, shR As Worksheet Set shR = Sheets("в работе") With shR .Range("A3:D" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).ClearContents End With
For Each wsh In ThisWorkbook.Sheets If Not wsh Is shR Then With wsh.Range("A2").CurrentRegion .Parent.AutoFilterMode = False .AutoFilter 8, "в работе" .Offset(1).Resize(, 4).Copy shR.Cells(Rows.Count, 1).End(xlUp)(2, 1).PasteSpecial xlPasteValues .AutoFilter End With End If Next wsh Application.CutCopyMode = False End Sub
[/vba] [offtop] Из файла. Задача: "устранить неисправность чего либо" ))[/offtop]
PORTANDREW, привет Попробуйте [vba]
Код
Sub ertert() Dim wsh As Worksheet, shR As Worksheet Set shR = Sheets("в работе") With shR .Range("A3:D" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).ClearContents End With
For Each wsh In ThisWorkbook.Sheets If Not wsh Is shR Then With wsh.Range("A2").CurrentRegion .Parent.AutoFilterMode = False .AutoFilter 8, "в работе" .Offset(1).Resize(, 4).Copy shR.Cells(Rows.Count, 1).End(xlUp)(2, 1).PasteSpecial xlPasteValues .AutoFilter End With End If Next wsh Application.CutCopyMode = False End Sub
[/vba] [offtop] Из файла. Задача: "устранить неисправность чего либо" ))[/offtop]nilem
nilem,Большое Вам спасибо за макрос! На примере, в файле он отлично работает, но как только заношу его на свою большую таблицу, почему то выдает ошибку на строке .AutoFilter 8, "в работе" , ошибка Run-tiмe error 1004 application-defined or object-defined error.
nilem,Большое Вам спасибо за макрос! На примере, в файле он отлично работает, но как только заношу его на свою большую таблицу, почему то выдает ошибку на строке .AutoFilter 8, "в работе" , ошибка Run-tiмe error 1004 application-defined or object-defined error.PORTANDREW
ZAC
Сообщение отредактировал PORTANDREW - Четверг, 03.01.2019, 17:14
Попробуйте вот этот код. Если возникнет ошибка, то появится сообщение с именем листа. Гляньте этот лист - может там нет 8-го столбца или еще что?
[vba]
Код
Sub ertert() Dim wsh As Worksheet, shR As Worksheet Set shR = Sheets("â ðàáîòå") With shR .Range("A3:D" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).ClearContents End With
On Error Resume Next: Err.Clear For Each wsh In ThisWorkbook.Sheets If Not wsh Is shR Then With wsh.Range("A2").CurrentRegion .Parent.AutoFilterMode = False .AutoFilter 8, "â ðàáîòå" .Offset(1).Resize(, 4).Copy shR.Cells(Rows.Count, 1).End(xlUp)(2, 1).PasteSpecial xlPasteValues .AutoFilter End With If Err Then MsgBox wsh.Name & vbCrLf & Err.Description, 48: Exit Sub End If Next wsh Application.CutCopyMode = False End Sub
[/vba]
Попробуйте вот этот код. Если возникнет ошибка, то появится сообщение с именем листа. Гляньте этот лист - может там нет 8-го столбца или еще что?
[vba]
Код
Sub ertert() Dim wsh As Worksheet, shR As Worksheet Set shR = Sheets("â ðàáîòå") With shR .Range("A3:D" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).ClearContents End With
On Error Resume Next: Err.Clear For Each wsh In ThisWorkbook.Sheets If Not wsh Is shR Then With wsh.Range("A2").CurrentRegion .Parent.AutoFilterMode = False .AutoFilter 8, "â ðàáîòå" .Offset(1).Resize(, 4).Copy shR.Cells(Rows.Count, 1).End(xlUp)(2, 1).PasteSpecial xlPasteValues .AutoFilter End With If Err Then MsgBox wsh.Name & vbCrLf & Err.Description, 48: Exit Sub End If Next wsh Application.CutCopyMode = False End Sub