MBT, Создал вот такой вот макрос. Огромное спасибо ему и Nic70y за то что поделился им со мной. Вопрос следующий, как вписать ещё одну строку для поиска вводимого мною значения. Т.е. сейчас текст для поиска вводится в 3 строчку первой вкладки, как сделать чтобы ещё и во вторую и в первую строчку можно было вписывать необходимый для поиска текст, эти строчки будут служить своеобразным фильтром. И как убрать пустые ячейки после применения фильтра искомых данных. А вот собственно и сам макрос:
[vba]
Код
Sub Runa() Dim StartRow As Long: StartRow = 5 Dim LastRow As Long Dim Name As String: Name = "*" & Cells(3, 1).Value & "*" Application.ScreenUpdating = False LastRow = Cells(Rows.Count, 1).End(xlUp).Row If LastRow > StartRow Then Range(Cells(StartRow, 1), Cells(LastRow, 2)).Clear With Sheets("Отчёт") For I = 1 To .Cells(Rows.Count, 1).End(xlUp).Row If .Cells(I, 1).Value Like Name Then Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value End If Next I End With With Range("A" & StartRow & ":B" & (StartRow + I - 2)) .WrapText = True .Borders.LineStyle = 1 End With Application.ScreenUpdating = True End Sub
[/vba] [moder]Оформляйте код тегами (кнопка #)[/moder]
MBT, Создал вот такой вот макрос. Огромное спасибо ему и Nic70y за то что поделился им со мной. Вопрос следующий, как вписать ещё одну строку для поиска вводимого мною значения. Т.е. сейчас текст для поиска вводится в 3 строчку первой вкладки, как сделать чтобы ещё и во вторую и в первую строчку можно было вписывать необходимый для поиска текст, эти строчки будут служить своеобразным фильтром. И как убрать пустые ячейки после применения фильтра искомых данных. А вот собственно и сам макрос:
[vba]
Код
Sub Runa() Dim StartRow As Long: StartRow = 5 Dim LastRow As Long Dim Name As String: Name = "*" & Cells(3, 1).Value & "*" Application.ScreenUpdating = False LastRow = Cells(Rows.Count, 1).End(xlUp).Row If LastRow > StartRow Then Range(Cells(StartRow, 1), Cells(LastRow, 2)).Clear With Sheets("Отчёт") For I = 1 To .Cells(Rows.Count, 1).End(xlUp).Row If .Cells(I, 1).Value Like Name Then Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value End If Next I End With With Range("A" & StartRow & ":B" & (StartRow + I - 2)) .WrapText = True .Borders.LineStyle = 1 End With Application.ScreenUpdating = True End Sub
[/vba] [moder]Оформляйте код тегами (кнопка #)[/moder]filla2007
Сообщение отредактировал Pelena - Пятница, 08.05.2015, 13:53
filla2007, По первой части вопроса можно так [vba]
Код
'.......... Dim Name1 As String: Name1 = "*" & Cells(1, 1).Value & "*" Dim Name2 As String: Name2 = "*" & Cells(2, 1).Value & "*" '............... If .Cells(I, 1).Value Like Name Then If .Cells(I, 1).Value Like Name1 Or Name1 = "**" Then If .Cells(I, 1).Value Like Name2 Or Name2 = "**" Then Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value End If End If End If '................
[/vba] По второй не понятно о каких пустых ячейках речь. Хотите более реальной помощи - нужен пример файла
filla2007, По первой части вопроса можно так [vba]
Код
'.......... Dim Name1 As String: Name1 = "*" & Cells(1, 1).Value & "*" Dim Name2 As String: Name2 = "*" & Cells(2, 1).Value & "*" '............... If .Cells(I, 1).Value Like Name Then If .Cells(I, 1).Value Like Name1 Or Name1 = "**" Then If .Cells(I, 1).Value Like Name2 Or Name2 = "**" Then Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value End If End If End If '................
[/vba] По второй не понятно о каких пустых ячейках речь. Хотите более реальной помощи - нужен пример файлаalex77755