无法分配给某数组

数组的每个元素都必须具有单独向其分配的值。 此错误具有以下原因和解决方案:

  • 无意中尝试将单个值分配给数组变量,而未指定该值应分配给哪个元素。

    若要向数组元素分配单个值,则必须在下标中指定元素。 例如,如果 MyArray 是整数数组,则 表达式MyArray = 5 无效,但以下表达式有效: MyArray(UBound(MyArray)) = 5

  • 您尝试将整个数组分配给另一个数组。

    例如,如果 Arr1 是数组,而 Arr2 是另一个数组,则以下两个分配都无效:

        Arr1 = Arr2    ' Invalid assignment. 
        Arr1() = Arr2()    ' Invalid assignment. 
    

    若要将一个数组分配给另一个数组,请确保分配左侧的数组可调整大小,并且数组的类型匹配。

    可将整个数组置于“Variant”中,这将导致单个 variant 变量包含整个数组:

           Dim MyArr As Variant 
           MyVar = Arr2() 
    

    然后,使用预普通数组相同的下标引用变量中的数组的元素,例如:

      MyVar(3) = MyVar(1) + MyVar(5) 
    

有关其他信息,选择有问题的项并按 F1(在 Windows 中)或 HELP(在 Macintosh 上)。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。