Option ExplicitSub module1()Dim Строка As StringСтрока = "Cells(2, 3) = Cells(4, 3) And Cells(2, 4) = Cells(4, 4)" ' Строка может быть такой' Или такой "Cells(2, 3) = Cells(4, 3)' Или такой "Cells(2, 3) = Cells(4, 3) And Cells(2, 4) = Cells(4, 4) And Cells(2, 5) = Cells(4, 5)' в зависимости от критериев отбораIf Строка Then ' Теперь нужно строковое значение использовать в булевой переменной' и запустить проверку булевого значения MsgBox "1" End If' КАК ЭТО СДЕЛАТЬ?End Sub
Option ExplicitSub module2()Dim Строка As StringСтрока = "=И(" & Chr(34) & Cells(2, 3) & Chr(34) & "=" & Chr(34) & Cells(4, 3) & Chr(34) & ";" & Chr(34) & Cells(2, 4) & Chr(34) & "=" & Chr(34) & Cells(4, 4) & Chr(34) & ")"Cells(1, 1).FormulaLocal = СтрокаIf Cells(1, 1) Then MsgBox "1"End IfEnd Sub
Dim sF As String, sI As String, sO As String sF = Cells(2, 3) sI = Cells(2, 4) sO = Cells(2, 5) If sF = "" Then sF = "*" If sI = "" Then sI = "*" If sO = "" Then sO = "*" If Cells(4, 3) Like sF And _ Cells(4, 4) Like sI And _ Cells(4, 5) Like sO Then MsgBox "1" End If
Sub Поиск_и_сортировка() Dim Количество_строчек As Long, Строка As Long, Новая_строка As Long, Диапазон_сортировки As Range Dim sF As String, sI As String, sO As String Worksheets("Таблица").Activate Новая_строка = 3 sF = UserForm1.TextBox1.Value sI = UserForm1.TextBox2.Value sO = UserForm1.TextBox3.Value If sF = "" Then sF = "*" If sI = "" Then sI = "*" If sO = "" Then sO = "*" Количество_строчек = StringAmount For Строка = 3 To Количество_строчек If Cells(Строка, 3) Like sF And Cells(Строка, 4) Like sI And Cells(Строка, 5) Like sO Then Worksheets("Таблица").Range(Cells(Строка, 3), Cells(Строка, 9)).Copy Worksheets("Результаты_Поиска").Cells(Новая_строка, 2).Value = Новая_строка - 2 Worksheets("Результаты_Поиска").Paste Range(Worksheets("Результаты_Поиска").Cells(Новая_строка, 3), Worksheets("Результаты_Поиска").Cells(Новая_строка, 9)) Новая_строка = Новая_строка + 1 End If Next Worksheets("Результаты_Поиска").Activate Set Диапазон_сортировки = Range(Cells(3, 3), Cells(StringAmount, 9)) With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range("c3") .SortFields.Add Key:=Range("d3") .SortFields.Add Key:=Range("e3") .SetRange Диапазон_сортировки .Apply End With MsgBox "Поиск и сортировка завершены.", vbOKOnly Worksheets("Заглавный").ActivateEnd SubFunction StringAmount() As Long 'Функция подсчета количества строк на странице Dim Начало_диапазона As Long Dim Конец_диапазона As Long Dim Количество_строчек As Long Начало_диапазона = ActiveSheet.UsedRange.Row Конец_диапазона = ActiveSheet.UsedRange.Rows.Count Количество_строчек = Начало_диапазона + Конец_диапазона - 1 StringAmount = Количество_строчекEnd Function