Я хочу создать функцию, которая проверяет, чтобы ячейка A2 на листе 1 содержала любые значения в отдельном столбце.Созданная пользователем функция не работает должным образом
Колонка 1 (Лист1)
- бедных
- ребенок
- сын
Колонка 1 (Лист4)
- бедных
- богатых
- ребенок
- взрослых
- дочь
- мать
У меня есть следующий код:
Function KeepActive(catchAll As String) As String
Dim i As Integer
For i = 1 To 500
If InStr(catchAll, Sheet4.Cells(i, 1).Value) Then
catchAll = "match"
Else
catchAll = "no match"
End If
Next i
KeepActive = catchAll
End Function
Catchall является ссылкой на соответствующую ячейку в колонке 1.
Поэтому теоретически теоретически следует понимать, что «плохой» «ребенок» и «son» присутствует в колонке 2.
Это должно возвращать два «совпадения» и один «нет совпадения», но он возвращает три «совпадения».
Любые идеи?
Спасибо!
Это _looks_, как вы могли бы использовать Excel? Вы можете добавить теги [excel] и/или [excel-vba], чтобы получить больше/релевантных глаз на ваш вопрос, если это так. –
спасибо, что указал это. исправлено! – Hectah
Вы не выходите из цикла, когда находите совпадение, поэтому вы устанавливаете catchAll для «соответствия», затем повторяете цикл, и его можно вернуть обратно в «no match», это фактически даст вам результат последнего проверенного значения В диапазоне. как другие предложили просто поставить 'Exit For' после того, как вы установили' catchAll = "match" ' –