Следующее является частью более длинного кода.Как я могу объявить Arg1 в Application.WorksheetFunction.Match
как целое число или строку?
У меня есть данные (числа) в столбце A и числа с подчеркиванием в столбце B.
Пользователь будетвведите число или строку в поле ввода, и функция сопоставления попытается сопоставить введенные пользователем данные в столбце A, но если он не сопоставлен, то попытается сопоставить его в столбце B и вернуть строку сопоставления.
Однако сопоставление будет работать только в том случае, если я использую Dim userinput As Integer
, и это будет соответствовать только в столбце A;или используйте Dim userinput As String
, и это будет соответствовать только в столбце B.Объявление Dim userinput As Variant
будет работать так же, как Dim userinput As String
.
Я мог бы сделать несколько обходных путей, но я хотел бы сначала понять, почему он не может сопоставить его в столбце A при объявлении его в качестве варианта?
Ниже приведены данные, которые у меня есть в столбцах Aи B соответственно.
W WB
25 25_0
25 25_1
25 25_2
25 25_2
25 25_3
25 25_3
25 25_3
26 26_0
26 26_0
26 26_0
26 26_1
26 26_1
Ниже приведен код:
Sub Return_Row()
Dim userinput As Variant, search_rng As Range
userinput = InputBox("Enter your number")
Set search_rng = ActiveSheet.Range("A:A")
On Error Resume Next
N = Application.WorksheetFunction.Match(userinput, search_rng, 0)
On Error GoTo 0
If N = 0 Then
Set search_rng = ActiveSheet.Range("B:B")
N = Application.WorksheetFunction.Match(userinput, search_rng, 0)
End If
MsgBox N
End Sub