Ниже наведен код, который ищет данные в колонке А и выводит от 1 и более строк с совпадениями.
Когда ввожу данные с UserForm1 ComboBox1 фильтр подтягивает все числа там где они сами и там где они присутствуют с другими числами. Когда ввожу данные с UserForm1 ComboBox1 и ComboBox2 в одну ячейку фильтрация подтягивает диапазон там где эти числа присутствуют в месте а там где раздельно нет.
Нужно при вводе данных в колонку А2 с UserForm1 ComboBox1 и ComboBox2 в одну ячейку А2 фильтр отфильтровывал все числа даже те которые присутствуют одни в строках и те которые присутствуют вместе с остальными.
Пример при выборе данных с ComboBox1 числа 12.14.01 и ComboBox2 числа 12.14.02 вводились данные в ячейке А2 *12.14.01** 12.14.02* после чего фильтр отфильтровал строки сданными *12.14.01* и *12.14.01*12.14.02* и *12.14.02*
Есть возможность это решить?
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:D2")) Is Nothing Then
Application.EnableEvents = False
On Error Resume Next
ActiveSheet.ShowAllData
Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:D2")
Application.EnableEvents = True
End If
End Sub
вы прекрасно описали работу Вашего кода, а вопрос какой, что не получается? или что должно быть?
как вариант..
Код
Private Sub CommandButton1_Click()
Dim x1 As String, x3 As String, x4 As String, cell As Range
x1 = ComboBox1.Text
x2 = ComboBox2.Text
x3 = Replace(ComboBox1.Text & ComboBox2.Text, "**", "*")
x = Application.WorksheetFunction.CountIf(Columns(1), "<>" & "")
Range(Cells(3, 1), Cells(x + 2, 1)).EntireRow.Hidden = False
Range(Cells(3, 1), Cells(x + 2, 1)).EntireRow.AutoFit
Worksheets(1).Cells(2, 1).Value = x3
lr = Cells(Rows.Count, 1).End(xlUp).Row + 2
For i = 3 To lr
If Cells(i, 1) <> x1 And Cells(i, 1) <> x2 And Cells(i, 1) <> x3 Then
If cell Is Nothing Then
Set cell = Cells(i, 1)
Else
Set cell = Union(cell, Cells(i, 1))
End If
End If
Next i
If Not cell Is Nothing Then cell.EntireRow.Hidden = True
Unload UserForm1
End Sub