Patrick,
Algunas cosas, que se tratan en mi
http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/A_3391-Using-the-Dictionary-Class-in-VBA.html del artículo
1) Desemejante de una colección, usted no puede referir a artículos en un diccionario usar un índice. Algo, en un diccionario, usted puede traer solamente un solo artículo si usted suministra su llave. Así pues, su lazo:
Para i = 1 a dic. Cuenta
. Células (i, “C”) = dic. Artículo (i)
Después i
no sacará artículos del diccionario. De hecho, debido a el diccionario “implícito agregar” el comportamiento, ese lazo está agregando realmente nuevos artículos al diccionario:)
2) Usted agregaba realmente la gama como la llave, y no el valor de la célula, en su primer lazo:
Para cada celle en rng
Si no dic.exists (celle) entonces
dic. Agregar el celle, celle
Terminar si
Celle siguiente
Puesto que cada célula es un diverso objeto, usted terminó realmente encima de agregar todas esas células como artículo y llave
******************
Así pues, fijar el código:
1) Pasar explícitamente los valores de las células, y no las células ellos mismos, al diccionario. O, utilizar una transferencia del arsenal para crear un arsenal en memoria, y entonces colocar con el arsenal y pasar los valores del arsenal al diccionario
2) Descargar los artículos en un arsenal
3) Hacer una transferencia del arsenal para escribir los valores a la hoja de trabajo
Patrick