Olá, Mantissa, bem vindo ao Planilhando.
A variável n é um Integer, então ela só aceita um único valor por vez e no entanto vc está tentando atribuir a ela o conteúdo de 10 células (Range("A1:A10")) ao mesmo tempo. Se fosse uma Variant, até aceitaria pois se tornaria uma matriz de uma dimensão e dez elementos. No entanto não faria muito sentido em seu código, já que é um simples contador, não é mesmo? Então, se o valor do número de iterações que vc intencionava buscar estiver digamos em A1, vc poderia usar simplesmente n = Worksheets("Plan1").Range("A1").Value. Embora não seja obrigatório, é um bom hábito sempre qualificar os objetos que vc vai usar, nesse caso do Range, usando a propriedade Value como indicado pelo Junqueira, pois vc está interessado no conteúdo da célula e não no objeto Range.
Obs.: como curiosidade, se vc quisesse usar a primeira célula do intervalo Range("A1:A10"), vc poderia também usar o próprio intervalo como uma "mini-planilha" e escolher então um sub-range dele. Poderia ser, por exemplo:
Range("A1:A10").Range("A1").Value 'Ou seja, o sub-range A1 do range A1:A10
Range("A1:A10")(1).Value 'Também funciona
Range("A1:A10").Cells(1, 1).Value 'Ou seja, a primeira célula da primeira coluna do intervalo A1:A10
Só mais uma observação:
...declarei todas as variáveis como inteiras.
Na verdade só n foi declarado como Integer, as outras permanecem Variant. Para declarar todas como Integer, tem de ser de uma a uma.
Dim Index As Integer, Hits As Integer, n As Integer
Postado : 27/10/2016 9:58 am