VBA Macro pour comparer toutes les cellules de deux fichiers Excel
Je suis en train de comparer deux fichiers Excel et de stocker ce que seulement il y a dans le nouveau fichier dans une feuille et stocker ce n'est là que dans l'ancienne dans une autre feuille. (En gros new - old = sheet1
et old - new = sheet2
.) Un DONC les réponses suggérons de faire une boucle par toutes les cellules et de faire une simple comparaison. Je suis (très) nouveau de VBA et les Macros, donc je ne sais pas comment faire. Comment est-il fait (ou où puis-je apprendre)?
source d'informationauteur Jungle Hunter
Vous devez vous connecter pour publier un commentaire.
Ne PAS boucle dans toutes les cellules!! Il y a beaucoup de frais généraux dans les communications entre des feuilles de calcul et VBA, la lecture et l'écriture. Une boucle dans toutes les cellules seront atrocement lent. Je parle heures.
Au lieu de cela, chargez une feuille entière à la fois dans un tableau de type Variant. Dans Excel 2003, cela prend environ 2 secondes (et 250 MO de RAM). Ensuite, vous pouvez faire une boucle par elle en un rien de temps.
Dans Excel 2007 et plus tard, les feuilles sont environ 1000 fois plus grande (1048576 lignes × 16384 colonnes = 17 milliards cellules, par rapport à 65 536 lignes × 256 colonnes = 17 millions dans Excel 2003). Vous allez courir dans un "Out of memory" d'erreur si vous essayez de charger l'ensemble de la feuille de dans une Variante; sur ma machine, je ne peux que la charge de 32 millions de cellules à la fois. Donc, vous devez vous limiter à la plage que vous savez qu'il a données réelles, ou de charger la feuille de bits par bits, par exemple de 30 colonnes à la fois.
À comparer à une feuille dans un autre classeur, ouvrez le classeur et obtenir la feuille comme suit:
Très simple de vérifier que vous pouvez faire avec les formules des Cellules:
La feuille 1 (nouveau)
Feuille 2 (vieux)
Cette formules de travail pour un ANGLAIS Excel. Pour les autres langues, ils doivent être traduits. (Pour l'allemand, je peux aider)
Vous avez besoin pour ouvrir tous les trois Documents Excel, puis copiez la première formule en A1 de la feuille 1 et la deuxième en A1 de la feuille 2.
Maintenant, cliquez en A1 de la première cellule et de la marque "Ref_New", vous pouvez maintenant sélectionner votre référence, allez dans le nouveau fichier et cliquez sur l'A1, à revenir à la feuille "sheet1" et faire de même pour "Ref_Old" avec l'ancien fichier. Remplacer aussi les autres "Ref_New".
Doe le même pour la Feuille deux.
Maintenant de copier le formaula formulaire A1 sur la gamme complète où zour de données est dans l'ancien et le nouveau fichier.
Mais deux cas ne sont pas couverts ici:
Pour couvrir ces deux cas également, vous devez créer votre propre fonction, les moyens d'apprendre VBA. Un très utile Excel page est cpearson.com