Patrick,
Algumas coisas, que são endereçadas em meu
http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/A_3391-Using-the-Dictionary-Class-in-VBA.html do artigo
1) Ao contrário de uma coleção, você não pode referir artigos em um dicionário using um índice. Um pouco, em um dicionário, você pode somente buscar um único artigo se você fornece sua chave. Assim, seu laço:
Para i = 1 a dic. Contagem
. Pilhas (i, “C”) = dic. Artigo (i)
Em seguida i
não retirará artigos do dicionário. Certamente, por causa do dicionário “implícito adicionar” o comportamento, esse laço está adicionando realmente artigos novos ao dicionário:)
2) Você adicionava realmente a escala como a chave, e não o valor da pilha, em seu primeiro laço:
Para cada celle no rng
Se não dic.exists (celle) então
dic. Adicionar o celle, celle
Terminar se
Celle seguinte
Desde que cada pilha é um objeto diferente, você terminou realmente acima de adicionar todas aquelas pilhas como o artigo e a chave
******************
Assim, para reparar o código:
1) Passar explicitamente os valores das pilhas, e não as pilhas elas mesmas, ao dicionário. Ou, usar transferência da disposição para criar uma disposição na memória, e então dá-la laços com a disposição e passar valores da disposição ao dicionário
2) Despejar os artigos em uma disposição
3) Fazer transferência da disposição para escrever os valores à folha
Patrick