Excel 为什么我在列表框中多次选择时总是出错

Excel 为什么我在列表框中多次选择时总是出错,excel,vba,Excel,Vba,我正在设置一个多选择框-使用我在网上找到的脚本,我的VBA几乎为零。我一直在下一个没有错误 Private Sub CommandButton2_Click() myVAR = "" For x = 0 To Me.Requirements.ListCount - 1 If Me.Requirements.Selected(x) Then If myVAR = "" Then myVAR = Me.Req

我正在设置一个多选择框-使用我在网上找到的脚本,我的VBA几乎为零。我一直在下一个没有错误

Private Sub CommandButton2_Click()

    myVAR = ""

    For x = 0 To Me.Requirements.ListCount - 1
        If Me.Requirements.Selected(x) Then
            If myVAR = "" Then
                myVAR = Me.Requirements.List(x, 0)
            Else
                myVAR = myVAR & "," & Me.Requirements.List(x, 0)
        End If
    Next x

    ThisWorkbook.Sheets("sheet1").Range("v2") = myVAR
    Me.Hide

End Sub
与OP中的当前代码相比,better中的原始代码突出显示了问题:

如果不确定如何正确、一致地缩进代码,可以使用工具,然后只需遵循缩进级别:

For x = 0 To Me.Requirements.ListCount - 1
|   If Me.Requirements.Selected(x) Then
|   |   If myVAR = "" Then
|   |   |   myVAR = Me.Requirements.List(x, 0)
|   |   Else
|   |   |   myVAR = myVAR & "," & Me.Requirements.List(x, 0)
|   |   End If
|   Next x '<~ not lined up!
*woopsie*
与OP中的当前代码相比,better中的原始代码突出显示了问题:

如果不确定如何正确、一致地缩进代码,可以使用工具,然后只需遵循缩进级别:

For x = 0 To Me.Requirements.ListCount - 1
|   If Me.Requirements.Selected(x) Then
|   |   If myVAR = "" Then
|   |   |   myVAR = Me.Requirements.List(x, 0)
|   |   Else
|   |   |   myVAR = myVAR & "," & Me.Requirements.List(x, 0)
|   |   End If
|   Next x '<~ not lined up!
*woopsie*

如果将
添加到中,则缺少
结尾,错误将消失。Warcupine是正确的。如果您缩进代码(每个If/Next/With…)一个选项卡,那么很容易看到您缺少一个
end If
添加进去,错误就会消失。Warcupine是正确的。如果缩进代码(每个If/Next/With…)一个选项卡),那么很容易看到
For x = 0 To Me.Requirements.ListCount - 1
|   If Me.Requirements.Selected(x) Then
|   |   If myVAR = "" Then
|   |   |   myVAR = Me.Requirements.List(x, 0)
|   |   Else
|   |   |   myVAR = myVAR & "," & Me.Requirements.List(x, 0)
|   |   End If
|   End If
Next x