Compartilhar via


Não é possível atribuir a uma matriz

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

  • Tentou inadvertidamente 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, tem de especificar o elemento numa linha inferior à linha. Por exemplo, se MyArray for uma matriz de números inteiros, a expressãoMyArray = 5 é inválida, mas a expressão seguinte é válida: MyArray(UBound(MyArray)) = 5

  • Tentou atribuir uma matriz inteira a outra matriz.

    Por exemplo, se Arr1 for uma matriz e Arr2 for outra matriz, as duas atribuições seguintes são ambas inválidas:

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

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

    Pode colocar uma matriz inteira numa Variante, resultando numa única variável de variante que contém toda a matriz:

           Dim MyArr As Variant 
           MyVar = Arr2() 
    

    Em seguida, referencia os elementos da matriz na variante com a mesma notação inferior à linha de 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.