Inicializando Variáveis

0

Estou trabalhando em um projeto que envolve o uso do Excel VBA. Infelizmente, sou novo no VBA e acho que acabei me confundindo durante a codificação. Aqui está o arquivo com o qual estou trabalhando.

Quando tentei testar o formulário, ele aparece uma caixa de mensagem dizendo

Run-time error '9': Subscript out of range

E quando eu clico em "Debug", ele destaca a linha

If wantsBYO = Worksheets("Sheet2").Cells(x + 1, 8) Or wantsBYO = "Unsure" Then

Eu estou supondo que isso é porque eu fiz algo errado com a inicialização da variável, mas não sei como consertar isso. Por favor, deixe-me saber como fazer isso.

    
por 2012ssohn 05.06.2015 / 16:56

2 respostas

1

Você renomeou todas as planilhas em sua pasta de trabalho para algo diferente de "Planilha2", portanto

Worksheets("Sheet2")

resultará em um erro. Altere "Sheet2" para qualquer nome de planilha que você precisar no seu código e isso não deve causar esse erro.

    
por 05.06.2015 / 17:08
0

Existem duas principais razões possíveis para a falha:

  • Uma planilha com o nome "Sheet2" não existe
  • x < 0 ou x > 1,048,575 (ou 65.535 se você estiver trabalhando com um arquivo de formato mais antigo)

O mais provável é que o problema esteja no nome da sua planilha como @CoRrRan já mencionado. Em geral, eu tento usar o CodeName de planilhas em vez de seu nome. O CodeName é o que aparece no Visualizador de Projetos no VBA Editor (a estrutura de árvore que mostra todos os objetos no projeto que, por padrão, está encaixado no lado esquerdo da tela). O CodeName não é susceptível de ser alterado pelo usuário típico e, portanto, é mais robusto. Na verdade, a planilha provavelmente ainda é denominada Sheet2 como um CodeName. Nesse caso, você mudaria a linha para:

If wantsBYO = Sheet2.Cells(x + 1, 8) Or wantsBYO = "Unsure" The
    
por 05.06.2015 / 17:26