下标超出范围,Excel VBA,尝试在循环内创建数组

1 excel vba range subscript

我正在尝试遍历表单中的所有控件,并且每次捕获Label时,Label的Tag元素都会添加到数组中.

Dim labelCounter As Integer
labelCounter = 0
Dim arrayTag() As String

For Each ctl In Me.Controls
    Select Case TypeName(ctl)
        Case "Label"
        arrayTag(labelCounter) = ctl.Tag
        labelCounter = labelCounter + 1
    End Select
Next
Run Code Online (Sandbox Code Playgroud)

我一直在使下标超出范围错误.这里出了什么问题?

Tim*_*ams 5

Sub Tester()

    Dim labelCounter As Integer
    Dim arrayTag() As String
    Dim ct As String, ctl

    labelCounter = 0
    ReDim arrayTag(0 To labelCounter)
    For Each ctl In Me.Controls
        ct = TypeName(ctl)
        If ct = "Label" Then
            If labelCounter > 0 Then
                ReDim Preserve arrayTag(0 To labelCounter)
            End If
            arrayTag(labelCounter) = ctl.Tag
            labelCounter = labelCounter + 1
        End If
    Next
    'Debug.Print Join(arrayTag, ",")
End Sub
Run Code Online (Sandbox Code Playgroud)