Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nem todas as matrizes podem ser redimensionadas. Esse erro tem as seguintes causas e soluções:
Uma variável foi declarada implicitamente uma Variant e você tentou usar ReDim para alterá-la para uma matriz.
Uma Variant pode conter uma matriz, mas se não for declarada explicitamente, você não poderá usar ReDim para transformá-la em uma matriz. Declare a Variant antes de usar ReDim para especificar o número de elementos que ela pode conter. Por exemplo, no código a seguir, causa um erro ReDim inválido,
ReDim AVar(10)masReDim BVar(10)não:
AVar = 1 ' Implicit declaration of AVar.
ReDim AVar(10) ' Causes invalid ReDim error.
'.
'.
'.
Dim BVar ' Explicit declaration of BVar.
ReDim BVar(10) ' No error.
Você tentou usar ReDim para alterar mais de uma dimensão de uma matriz contida em uma Variant. Você só pode usar ReDim para alterar o tamanho da última dimensão de uma matriz em uma Variant. Para criar uma matriz com várias dimensões que podem ser redimensionadas, a matriz não pode estar contida em uma Variant e você deve declará-la da maneira normal.
Use ReDim apenas para alterar o número de elementos em uma matriz normal, não o tipo desses elementos. Se você quiser uma matriz na qual possa alterar os tipos dos elementos, use uma matriz contida em uma Variant. Se você declarar a matriz primeiro, a alteração dos tipos e do número de seus elementos poderá ser feita da seguinte maneira:
Dim MyVar As Variant ' Declare the variable.
ReDim MyVar(10) As String ' ReDim it as array of String subtypes.
ReDim MyVar(20) As Integer ' ReDim it as array of Integer subtypes.
ReDim MyVar(5) As Variant ' ReDim it as array of Variant subtypes.
Você tentou usar ReDim com uma matriz que é membro de um objeto Automation.
Remova o ReDim.
Observação Se você não especificar um tipo para uma variável, a variável receberá o tipo padrão, Variant. Isso nem sempre é óbvio. Por exemplo, o seguinte código declara duas variáveis: a primeira,
MyVar, é uma Variant; a segunda,AnotherVar, é um Integer.
Dim MyVar, AnotherVar As Integer
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.