Поиск следующей не выделенной ячейки (без условий) - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь настроить формулу, которая найдет следующее значение, которое не выделено, используя запись в окне поиска в пользовательской форме. Вот моя базовая c формула:

Private Sub PrintButton1_Click()
With Worksheets(1).Range("a2:a10000")
Dim c As Range
     Set c = .Find(ScanBox1.Text, LookIn:=xlValues)
     If Not c Is Nothing Then  'I think this is possibly where I should have the search condition?
        firstAddress = c.Address
        Do
            MsgBox "Found It!"
            Set c = .FindNext(c)
        If c Is Nothing Then
            GoTo DoneFinding
        End If
        Loop While c.Address <> firstAddress
End If
DoneFinding:
MsgBox "Nothing found!"
End With
End Sub

Я пытался добавить что-то вроде "И c .Interior.ColorIndex = 0" или "И c .Interior.ColorIndex = xlNone "но я не думаю, что это может сделать то, что я думаю, что должно ...

1 Ответ

0 голосов
/ 22 февраля 2020

Этот код должен делать эту работу. Пожалуйста, попробуйте.

Sub PrintButton1_Click()

    Dim Rng As Range
    Dim LastCell As Range
    Dim FoundCell As Range
    Dim FirstFound As String
    Dim Msg As String

    With Worksheets(1)
        ' set the range from A2 to the last used cell in column A
        Set LastCell = .Cells(.Rows.Count, "A").End(xlUp)
        Set Rng = .Range(.Cells(2, "A"), LastCell)
    End With

    Set FoundCell = Rng.Find(What:=ScanBox1.Text, After:=LastCell)
    If Not FoundCell Is Nothing Then FirstFound = FoundCell.Address

    Do Until FoundCell Is Nothing
        If FoundCell.Interior.Pattern <> -4142 Then
            Msg = "First highlighted cell is " & FoundCell.Address
            Exit Do
        End If
        Set FoundCell = Rng.FindNext(After:=FoundCell)
        Debug.Print FoundCell.Address
        If FoundCell.Address = FirstFound Then Exit Do
    Loop

    If Len(Msg) = 0 Then Msg = "No match highlighted matching cell was found."
    MsgBox Msg, vbInformation, "Search result"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...