Excel 类型不匹配13设置数组值时出现错误13

Excel 类型不匹配13设置数组值时出现错误13,excel,vba,Excel,Vba,我不确定发生了什么,我想这是一个简单的代码 基本上,我只是根据单元格值是否为真创建一个数组列表。但是我在将数组设置为单元格值时遇到了错误。我错过什么了吗 Sub test() Dim chklst() As String Dim i As Long With Worksheets("Select") For i = 1 To 10 If .Cells(14 + i, 12).Value = "True" Then

我不确定发生了什么,我想这是一个简单的代码

基本上,我只是根据单元格值是否为真创建一个数组列表。但是我在将数组设置为单元格值时遇到了错误。我错过什么了吗

Sub test()
    Dim chklst() As String
    Dim i As Long

    With Worksheets("Select")
        For i = 1 To 10
            If .Cells(14 + i, 12).Value = "True" Then
                chklst() = .Cells(14 + i, 13).Value 'This is where the error shows up
            End If
        Next i
    End With
End Sub

添加手表时,它发现
.Cells(14+i,13).Value
是一个变量/字符串。将变量更改为Variant不起作用。将.Value更改为.Text也不起作用。。帮助。

您尚未声明数组的大小。没有声明大小,就没有地方可以放置任何东西

Sub test()

    With Worksheets("Select")

        Dim chklst() As String
        ReDim chklst(1 To Application.CountIf(.Range(.Cells(15, 12), .Cells(24, 12)), "True"))


        Dim i As Long
        For i = 1 To 10
            If .Cells(14 + i, 12).Value = "True" Then
                chklst(i) = .Cells(14 + i, 13).Value 'This is where the error shows up
            End If
        Next i
    End With
End Sub

啊,这就是为什么仅仅添加chklst(i)就表示下标超出范围。我在我的另一个数组列表代码上比较它,我根本不需要声明大小,而且它工作正常,所以不确定这次为什么要声明它。但是,是的,它现在可以工作了。@Basher仔细看,因为根据语言规范,访问未初始化的数组下标会抛出错误9,并且这些错误在调试会话之间不会改变。