L oop throughDv (изменить ячейку, когда h> a) - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий код:

Sub LoopThroughDv()
    Dim dvCell As Range
    Dim inputRange As Range
    Dim c As Range
    Dim i As Long
    Dim h As Range
    Dim a As Range
    Set h = Worksheets("Ark2").Range("H2")
    Set a = Worksheets("Ark2").Range("A2")

     'Which cell has data validation
    Set dvCell = Worksheets("Ark2").Range("I2")

     'Determine where validation comes from
    Set inputRange = Evaluate(dvCell.Validation.Formula1)

    i = 0
     'Begin our loop
    Application.ScreenUpdating = True
    For Each c In inputRange
            dvCell = c.Value
        i = i + 1
    If h > a Then
        Exit For
    End If
    Next c
    Application.ScreenUpdating = True

End Sub      

, и когда h> ai хочу изменить h, a и dvCell на ячейки H3, A3 и I3, а затем продолжать увеличивать до пустой ячейки.

1 Ответ

0 голосов
/ 05 мая 2020

Что-то вроде следующего? Дело в том, что вам нужно проделать oop весь процесс, пока вы не получите пустую ячейку. Возможно, вам придется немного отрегулировать часть до тех пор, пока она не будет соответствовать вашим настройкам данных.

i = 2

Do

    Set h = Worksheets("Ark2").Range("H" & i)
    Set a = Worksheets("Ark2").Range("A" & i)

     'Which cell has data validation
    Set dvCell = Worksheets("Ark2").Range("I" & i)

     'Determine where validation comes from
    Set inputRange = Evaluate(dvCell.Validation.Formula1)

    For Each c In inputRange
        dvCell = c.Value
        If h.Value > a.Value Then Exit For
    Next c

    i = i + 1

Loop Until h.Offset(1).Value = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...