[英]Next buttons userform Excel VBA
我有一個管理表,其中包含一列包含True和False的列表。 我正在構建一個用戶窗體UI,因此用戶可以單擊“下一步”(現在-在進行下一個工作后構建上一個按鈕),該用戶窗體將在管理表中顯示下一個False項目,並且在Sheet1中其對應的數據將顯示在Textbox1中。
原因是管理工作表中的行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項目,並在Textbox1中正確顯示它。 但是,它不會迭代到下一個。
無論我們用來設置Next的邏輯是什么,我都將假定Previous將是相同的?
多謝你們。
您可以執行以下操作:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.