首页 > 解决方案 > 在 VBA 中自动化列表框值

问题描述

您好,我正在尝试将一个值自动化到一个包含两个列表框的网站中。对于第一个列表框,此代码有效,但不适用于第二个列表框。即使我更改变量“a”,我也不能只复制并粘贴下面的第二个代码。任何帮助表示赞赏!

For a = 1 To cats.Options.Length
If cats.Options(a).Text = "Option One" Then
cats.selectedindex = a
Exit For
End If
Next a

标签: vbaexcellistbox

解决方案


如果您正在使用多个列表,那么您应该提出一个可重用的代码块,您可以调用任何列表+值。

就像是:

Function SetByTextValue(lst as object, v as string) As Boolean
    Dim a as long
    For a = 0 To lst.Options.Length - 1
        If lst.Options(a).Text = v Then
            lst.selectedindex = a
            SetByTextValue = True
            Exit Function
        End If
    Next a
End Function

然后在您的主代码中,您可以执行以下操作:

If Not SetByTextValue(cats, "Option One") Then
   'not found
Else
   '...proceed with next list
End If

推荐阅读