Excel VBA .Trouver de méthode entre classeurs
Question:
Pourquoi le Range.Find
méthode ne fonctionne pas lorsque le référencement d'un autre classeur?
Problème:
Je suis d'essayer de copier des données entre des classeurs, mais le Range.Find
méthode est en cours d'arrêt avec une "Erreur d'Exécution 1004". J'utilise Excel 2007 sur une machine Windows 7.
Détails:
Sur deux classeurs, seule la feuille "Sheet1" est référencé ou utilisée pour chaque classeur. J'ai une procédure (ztest) avec le plan suivant:
- Format de la feuille
- Boucle dans toutes les cellules dans la colonne E du cahier de travail #1
- À l'aide de la
Range.Find
méthode, de trouver de la valeur dans la colonne E du cahier de travail #2 - Une fois trouvé, ensemble classeur n ° 1 décalage de colonne = classeur n ° 2 décalage de colonne
J'aimerais le faire avec .Find
- pas à l'aide de HLOOKUP ou similaires.
J'ai simplifié le code un peu, à affiner ce qui se passe exactement. Cela ne montre pas l'étape 4 ci-dessus, mais l'erreur se produit à l'étape 3, dans la déclaration contenant les .Find
méthode:
Public Sub ztest2()
'set workbook titles
Const w1 As String = "05AR 20130920.xlsx"
Const w2 As String = "05AR 20130923.xlsx"
Dim cl As Variant
With Workbooks(w2).Worksheets(1)
'format the sheet
.Range("A1", "D1").EntireColumn.Hidden = True
'loop through all cells column E of workbook #1
For Each cl In .Range("E2", Cells(Rows.Count, "E").End(xlUp))
'find value of current cell in column E, workbook #2
Workbooks(w1).Worksheets(1) _
.Range("E2", Cells(Rows.Count, "E").End(xlUp)) _
.Find(what:=cl.Value, LookIn:=xlValues).Select
Next
End With
End Sub
BTW +1 pour un bien mis à la question...
OriginalL'auteur Aaron Thomas | 2013-09-23
Vous devez vous connecter pour publier un commentaire.
Il est très important que vous la structure de votre code très bien de sorte qu'il n'y a pas de mal à le comprendre. Si nécessaire, écrire des lignes de code supplémentaires, de sorte que même si vous voyez le code au bout de 6 mois, vous pouvez identifier ce que votre code ne. Aussi qualifier pleinement de vos objets.
Essayez ceci (non testé). J'ai commenté le code. Donc, si vous ne comprenez pas quelque chose, puis après retour
Your code works as expected.
De la musique à mes oreilles :p Comme je l'ai mentionné, votre objet de Cellules ne sont pas pleinement qualifiés et, par conséquent, vous obtenez cette erreur..Sid, j'apprécie vraiment l'aider! Désolé, j'aurais dit "Votre code fonctionne et est plus facile de suivre et de résoudre les problèmes." Ainsi, une grande leçon pour moi - assurez-vous que le code est structuré. J'aime bien le "assurez-vous qu'il peut être lu 6 mois plus tard" les conseils, surtout que je commence à construire mon propre sac de trucs à intégrer dans les différents projets. Merci encore!
Pas de soucis 🙂
especially as I'm starting to build up my own bag of tricks to incorporate in different projects
Plus de Conseils? Voir ‘Err’ est HommeOriginalL'auteur Siddharth Rout