VBA cell.value как строка - Несовпадение типов - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть база данных имен, и я пытаюсь настроить ее так, чтобы я мог искать имя и затем быть перенесенным в строку (и) с указанным именем. Код, который я сейчас использую:

Option Compare Text

Sub NameFinder()
'Search for name, then produce name and birthday
Sheets("Guests").Activate

Dim s As String, r As Range, found As Integer

Set begin = Range("D2")

s = InputBox("Enter a name to search.")
Set r = Range(begin, begin.End(xlDown))

found = WorksheetFunction.CountIf(r, s)
MsgBox ("There are " & found & " people with the name " & s)


For Each cell In r
    If cell.Value = s Then
    Application.Goto cell.EntireRow, tru
    End If
Next


End Sub

cell.Value не ищет строки, поэтому он продолжает выдавать мне сообщение об ошибке. Что я могу сделать, чтобы остановить это?

1 Ответ

1 голос
/ 25 февраля 2020

Просто отфильтруйте свой диапазон по имени


Option Compare Text

Sub NameFinder()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Guests")
Dim s As String, lr As Long
Dim Found As Range

lr = ws.Range("D" & ws.Rows.Count).End(xlUp).Row
s = InputBox("Enter a name to search")

Set Found = ws.Range("D1:D" & lr).Find(s)

If Not Found Is Nothing Then
    'Filter to name
    ws.Range("D1:D" & lr).AutoFilter 1, s
Else
    MsgBox "Name not found"
End If

End Sub
...