Como corrigir o erro 'Subscrito fora do intervalo' no Visual Basic for Applications?



Experimente Nosso Instrumento Para Eliminar Problemas

O Visual Basic for Applications (VBA) é uma implementação da linguagem de programação Visual Basic desenvolvida pela Microsoft. O VBA pode ser usado para habilitar UDFs, automatizar tarefas e acessar WinAPI por meio de DLLs. No entanto, recentemente, muitos relatórios têm chegado onde os usuários são incapazes de executar certos comandos e um “ Subscrito fora do intervalo, erro 9 ”Aparece ao tentar fazer isso.



Erro de subscrito fora do intervalo



O que causa o erro “Subscrito fora do intervalo” no VBA?

Depois de receber vários relatórios de vários usuários, decidimos investigar o problema e criar um conjunto de soluções para corrigi-lo completamente. Além disso, examinamos os motivos pelos quais ele foi acionado e os listamos da seguinte forma.



  • Elemento não existente: Em alguns casos, é possível que você tenha referenciado um elemento no comando que não existe. É possível que o subscrito seja maior ou menor do que o intervalo de subscritos ou dimensões possíveis pode não ter sido atribuído ao array neste ponto do aplicativo.
  • Elementos indefinidos: É possível que você não tenha identificado o número de elementos em seu código, é importante que o número de elementos em uma matriz seja definido usando os comandos “Dim” ou “ReDim”.
  • Membro da coleção incorreta: Em alguns casos, o usuário pode ter feito referência a um membro da coleção que não existe. Se uma referência incorreta for feita para o membro da coleção, este erro pode ser acionado.
  • Roteiro abreviado: É possível que você tenha feito uso de uma forma abreviada de subscrito e especificado implicitamente um elemento inválido. É importante usar um nome de chave válido.

Agora que você tem uma compreensão básica da natureza do problema, seguiremos em direção às soluções. Certifique-se de implementá-los na ordem específica em que são apresentados para evitar conflito.

Solução 1: Verificando matrizes

É possível que você tenha definido um valor incorreto para o elemento Array. Portanto, é recomendável verificar novamente o valor que você definiu para o elemento Array e certificar-se de que seja o correto. Além disso, certifique-se de verificar a declaração da matriz e verificar os limites superior e inferior. Se as matrizes foram redimensionadas, certifique-se de usar o LBound e UBound funções para condicionar acessos. Verifique a grafia do nome da variável se o índice for uma variável.

Array em VBA Excel



Solução 2: Especificando o Número de Elementos

Em alguns casos, é possível que você não tenha definido o número de elementos em seu código devido ao qual o erro está sendo acionado. É recomendado que você especifique o número de elementos na matriz usando o Nenhum ou ReDim funções.

Usando Dim e ReDim para especificar o número de elementos

Solução 3: Mudança de construção

Este erro é comumente disparado quando o usuário especifica um membro de coleção incorreto ou inexistente. Portanto, em vez de especificar os elementos do índice, é recomendável que você se aproxime com o “ Para Cada ... Próximo ' construir.

Usando a construção “For Each ... Next”

Solução 4: Verificar nome-chave e índice

Em alguns casos, é possível que você tenha usado uma forma abreviada do subscrito e ele especifique um elemento inválido. Portanto, é recomendável que você use um chave válida nome e índice para a coleção.

Usando um nome-chave válido

2 minutos lidos