标签:VBA,列表框,用户界面
有时候,可能你想自动选择列表框中的第一项或者最后一项。例如,当选择列表框所在的工作表时,列表框自动选择第一项,或者选择最后一项。这都可以使用简单的VBA代码轻易实现。
示例效果如下图1所示。
图1
VBA代码如下:
代码语言:javascript复制Private Sub CommandButton1_Click()
Dim i As Long
For i = ListBox1.ListCount - 1 To 0 Step -1
ListBox1.ListIndex = i
Next i
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
For i = 0 To ListBox1.ListCount - 1
ListBox1.ListIndex = i
Next i
End Sub
Private Sub Worksheet_Activate()
CommandButton1_Click
End Sub
第一个过程在单击命令按钮后选择列表框中的第一项,第二个过程在单击命令按钮后选择列表框中的最后一项。而Activate事件,当该工作表成为当前工作表时,自动执行相应的过程,从而选择列表框中的第一项。
这些过程是如何工作的呢?它们是在计算列表框中所有列表项数的前提下工作的。在第一个过程中,使用一个简单的循环从列表框的底部开始,一直到顶部。
For i = ListBox1.ListCount - 1 To 0 Step -1
等价于
For i = 6 to 0
注意,列表框的列表计数从零(0)开始。
列表框中共有7项,Step -1告诉循环在每次循环迭代中从i减少1。
对于第二个过程,在循环内调用相反的过程。从顶部开始,向下直到底部,然后停止。
注:有兴趣的朋友可以到知识星球App完美Excel社群下载示例工作簿。