使用VBA自动选择列表框中的第一项

2022-11-16 13:00:17 浏览数 (1)

标签: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社群下载示例工作簿。

vba

0 人点赞