Выберите следующее значение, которое соответствует критериям - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу выбрать ячейку за ячейкой в ​​столбце «А», которые заполнены красным цветом (код цвета = 3). Каждый раз, когда нажимается кнопка, выделение должно переходить в следующую ячейку, заполненную красным (тот же столбец).

Мой код до сих пор:

Sub FindNext()
    Dim c As Range

    On Error Resume Next

    With Worksheets(1).Range("A1:B500")
        Set c = .Find(Cells.Interior.ColorIndex = 3, LookIn:=xlValues)
        If Not c Is Nothing Then
            Do
                c.Select
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
End Sub

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018
Sub Test()
Dim r As Range
If Intersect(ActiveCell, Columns("A")) Is Nothing Then [A1].Select
With Application.FindFormat
    .clear
    .Interior.ColorIndex = 3
End With
Set r = Columns("A").Find("", ActiveCell, searchformat:=True)
If Not r Is Nothing Then r.Select
End Sub

Другой рабочий раствор

0 голосов
/ 12 ноября 2018

Сначала код для красного цвета - 255. Если вы имеете в виду другой код, просто измените код ниже.

С помощью простого цикла for вы можете получить следующую красную ячейку в столбце:

Option Explicit

Sub test()

Dim Srow As Long
Dim LastRow As Long
Dim i As Long

LastRow = Range("A" & Rows.Count).End(xlUp).Row
Srow = Selection.Row

For i = Srow +1 To 500 'Replace 500 by Lastrow if your last cell has a value inside
    If Cells(i, 1).Interior.Color = 255 Then
        Cells(i, 1).Select
        Exit Sub
    End If
Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...