Compartilhar via


Não é possível atribuir a uma matriz

Cada elemento de uma matriz deve ter seu valor atribuído individualmente. Esse erro tem as seguintes causas e soluções:

  • Você inadvertidamente tentou atribuir um único valor a uma variável de matriz sem especificar o elemento ao qual o valor deve ser atribuído.

    Para atribuir um único valor a um elemento de matriz, você deve especificar o elemento em um subscript. Por exemplo, se MyArray for uma matriz inteiro, a expressãoMyArray = 5 será inválida, mas a seguinte expressão será válida: MyArray(UBound(MyArray)) = 5

  • Você tentou atribuir uma matriz inteira a outra matriz.

    Por exemplo, se Arr1 for uma matriz e Arr2 for outra matriz, as duas atribuições a seguir serão inválidas:

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

    Para atribuir uma matriz a outra, verifique se a matriz no lado esquerdo da atribuição é redimensionável e os tipos da matriz correspondem.

    Você pode colocar uma matriz inteira em uma Variant, resultando em uma única variável variante que contém toda a matriz:

           Dim MyArr As Variant 
           MyVar = Arr2() 
    

    Em seguida, você referencia os elementos da matriz na variante com a mesma notação de subscrição que para uma matriz normal, por exemplo:

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

Saiba mais selecionando o item em questão e pressionando F1 (no Windows) ou HELP (no Macintosh).

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.