Compartilhar via


Subscrito fora do intervalo (Erro 9)

Elementos de matriz e membros de coleções somente podem ser acessados dentro de seus limites definidos. Esse erro tem as seguintes causas e soluções:

  • Você referenciou um elemento de matriz inexistente. O subscrito pode ser maior ou menor que o intervalo possível de subscritos ou a matriz pode não ter dimensões atribuídas neste momento no aplicativo. Verifique a declaração da matriz para ver quais são seus limites superior e inferior. Use as funções UBound e LBound para condicionar os acessos à matriz se você estiver trabalhando com matrizes redimensionadas. Se o índice for especificado como uma variável, verifique a ortografia do nome da variável.

  • Você declarou uma matriz, mas não especificou o número de elementos. Por exemplo, o código a seguir causa o seguinte erro:

      Dim MyArray() As Integer 
      MyArray(8) = 234 ' Causes Error 9. 
    

    O Visual Basic não dimensiona implicitamente intervalos de matriz como 0-10. Em vez disso, você deve usar Dim ou ReDim para especificar explicitamente o número de elementos em uma matriz.

  • Você referenciou um membro da coleção inexistente. Tente usar o construto For Each... Next em vez de especificar elementos de índice.

  • Você usou uma forma abreviada de subscrito que implicitamente especificou um elemento inválido. Por exemplo, quando você usa o operador ! com uma coleção, o ! especifica implicitamente uma chave. Por exemplo, objeto!keyname. value é equivalente ao valor objeto. item (keyname). Nesse caso, um erro será gerado se keyname representar uma chave inválida na coleção. Para corrigir o erro, use um nome de chave ou índice válido para a coleção.

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

Observação

Interessado em desenvolver soluções que ampliem a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os suplementos do Office ocupam um pequeno espaço em comparação com os suplementos e as soluções do VSTO, e você pode criá-los usando quase qualquer tecnologia de programação da Web, como o HTML5, JavaScript, CSS3 e XML.

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.