#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 ниже, но я не могу увеличить его, я опубликую новый вопрос