下一个按钮用户表单 Excel VBA



我有一个管理表,其中有一列包含真和假列表。我正在构建一个用户表单 UI,以便用户可以单击下一步(现在 - 在进行下一次工作后构建上一个按钮(,用户表单将在管理表中显示下一个 False 项目,其在 Sheet1 中的相应数据将显示在文本框 1 中。

原因是管理表中的行 ID 与 Sheet1 相关。因此,如果 Sheet1 行 (31( 中的数据有问题,则管理表行 (31( 中的列 (13( 将为 False。

法典:

Dim n As Long
Private Sub CommandButton1_Click()
Dim LR As Long
LR = Sheets("Sheet1").Cells(Rows.count, "B").End(xlUp).row
n = 7
With Worksheets("Admin")
For i = n To LR
If .Cells(i, 13).Value = "False" Then
With Worksheets("Sheet1")
Me.TextBox1 = .Cells(i, 2).Value
Exit For
End With
End If
Next i
End With
n = i + 1
End Sub

这将成功转到下一个 False 项,并在文本框 1 中正确显示它。但是,它不会迭代到下一个。

无论我们使用什么逻辑来设置Next,我都会假设Prior会是一样的吗?

谢谢大家。

你可以做这样的事情:

Sub cmdNext_Click()
FindRow True
End Sub
Sub cmdPrev_Click()
FindRow False
End Sub

Private Sub FindRow(bForward As Boolean)
Const RW_START As Long = 7
Dim LR As Long, t As Long, dir As Long, i As Long
LR = Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row
'going forwards, or back?
If bForward Then
n = IIf(n = 0, RW_START, n + 1) '<< Start at top
t = LR                          '<< towards here
dir = 1                         '<< increasing
Else
n = IIf(n = 0, LR, n - 1)       '<< Start at bottom
t = RW_START                    '<< towards here
dir = -1                        '<< decreasing
End If
For i = n To t Step dir
If Worksheets("Admin").Cells(i, 13).Value = "False" Then
Me.TextBox1 = Worksheets("Sheet1").Cells(i, 2).Value
n = i
Exit For
End If
Next i
End Sub

最新更新