Compartilhar via


O argumento de Matriz deve ser ByRef

Matrizes declaradas com Dim, ReDim ou Static não podem ser passadas por ByVal. Esse erro tem a seguinte causa e solução:

  • Você tentou passar uma matriz inteira ByVal. Um elemento individual de uma matriz pode ser passado por ByVal (por valor), mas uma matriz inteira deve ser passada ByRef (por referência). Observe que ByRef é o padrão. Se você precisar passar uma matriz ByVal para impedir que alterações nos elementos da matriz sejam propagadas de volta para o chamador, você poderá passar a matriz (argumento) em seu próprio conjunto de parênteses ou colocá-la em uma Variant e, em seguida, passar a Variant para o parâmetro ByVal , da seguinte maneira:
Dim MyVar As Variant 
MyVar = OldArray() 

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.