Я попытался закодировать макрос, в котором выполняется поиск по заданному c тексту. A) Столбец для поиска, B) Столбец, в котором должен появиться результат, и C) Текст, по которому проводится поиск. Все обозначены соответствующими полями ввода. В поле ввода для столбцов, в которых необходимо выполнить поиск, и в том месте, где должен располагаться вывод , нужно только имя столбца (а не диапазон) , обозначенное буквами (текст и т. Д.) В качестве значения. Например, если необходимо выполнить поиск в столбце Y, в поле ввода необходимо ввести только букву «Y». Я пробовал различные перестановки, но не смог заменить Y2: Y & LastRow в приведенном ниже коде, поэтому он относится к вводу из поля ввода для столбца для поиска.
Код выглядит следующим образом: -
Sub CountIfAllVariablesFromInputBox()
Dim LastRow As Long
Dim ChkColumn As String
'display an input box asking for column
ChkColumn = InputBox( _
"Please enter column to check")
'if no input stop
ColumnNumber = Columns(ChkColumn).Column
If Len(ChkColumn) = 0 Then
MsgBox "No column entered"
Exit Sub
End If
Dim InputColumn As String
'display an input box asking for column
InputColumn = InputBox( _
"Please enter column to insert results")
'if no input stop
If Len(InputColumn) = 0 Then
MsgBox "No column entered"
Exit Sub
End If
'inputbox for text string to search for
Dim SuccessKeyWord As String
SuccessKeyWord = InputBox(Prompt:="Enter KeyWord For Success", _
Title:="KeyWord For Success", Default:="WOW!!")
LastRow = Range(ChkColumn & Rows.Count).End(xlUp).Row
Range(InputColumn & "1").Formula = "=COUNTIF(Range("Y2:Y"&LastRow),""" & SuccessKeyWord & """)"
End With
End Sub
Поиск в Google дал так много способов ссылаться на диапазоны (с ячейками, ячейкой, переменными), что я перегружен, к сожалению, я не смог получить результат ни одним из них.
Я был бы очень благодарен за вашу любезную помощь.
Я разместил снимок экрана. Иногда мне нужно искать в столбце "W", а в других - в столбце "Y". , Мне нужна эта гибкость, используя поле ввода.
Снимок экрана столбцов
Ошибка после замены последней строки кода на: -
Range(InputColumn & "1").Formula = "=COUNTIF(Range(""" & ChkColumn & 2 & ":" & ChkColumn & """&LastRow),""" & SuccessKeyWord & """)"
или
Range(InputColumn & "1").Formula = "=COUNTIF(Range(""" & ChkColumn & 2 & ":" & ChkColumn &LastRow & """),""" & SuccessKeyWord & """)"
Примечание: -
Поиск в столбце W
Результат в столбце AA
Текст в поиск WOW !!