Реализовать Следующие кнопки пропустить строку, когда она пуста

#excel #vba

#excel #vba

Вопрос:

Привет, я пытаюсь реализовать код для нажатия кнопки далее. Большинство примеров, которые я видел, похоже, просто увеличиваются до следующей строки. У меня есть смежные ячейки в столбце A, но некоторые из ячеек пусты, и я бы хотел, чтобы они переходили к следующей строке с данными, а не только к следующей.

Я работаю с этим образцом кода, но мне кажется, что я могу заставить его увеличивать и пропускать пробелы

 Private Sub cmdNext_Click()
    ' Increment row number:
    lCurrentRow = lCurrentRow   1

    ' Show contents of new row in the form:
    txtName.Text = Cells(lCurrentRow, 1).Value
    txtPhone.Text = Cells(lCurrentRow, 2).Value
End Sub
 

Комментарии:

1. Пожалуйста, не забудьте отметить свои вопросы как решенные, если вы получите подходящий ответ. Спасибо.

Ответ №1:

Попробуйте это:

 Private Sub cmdNext_Click()
    Dim rFound As Range

    Set rFound = Columns(1).Find(What:="*", After:=Cells(lCurrentRow, 1))

    If Not rFound Is Nothing Then
        If rFound.Row > lCurrentRow Then
            lCurrentRow = rFound.Row
            txtName.Text = Cells(lCurrentRow, 1).Value
            txtPhone.Text = Cells(lCurrentRow, 2).Value
        End If
    End If

    Set rFound = Nothing

End Sub
 

Комментарии:

1. Спасибо за ваш ответ — я еще не пытался реализовать ваш код, я пробовал с таймсами ниже, но я не могу увеличить его, я опубликую новый вопрос

2. @paulworthington , вам следует продолжить свой вопрос здесь, а не начинать новый.

3. ty brettdj — я все еще привыкаю публиковать вопросы приветствия

4. Что я могу сказать? Если вы не попробуете, я не смогу вам помочь.

Ответ №2:

 Private Sub cmdNext_Click()
    ' Increment row number:
    lCurrentRow = lCurrentRow   1

    do while Len(Cells(lCurrentRow, 1).Value) = 0
       LCurrentRow = lCurrentRow   1
    Loop

    ' Show contents of new row in the form:
    txtName.Text = Cells(lCurrentRow, 1).Value
    txtPhone.Text = Cells(lCurrentRow, 2).Value
End Sub
 

Вам понадобится что-нибудь внутри, чтобы остановить его стекание с конца листа…

Комментарии:

1. Спасибо за ваш ответ — я пробовал использовать tims ниже, но я не могу увеличить его, я опубликую новый вопрос