Se référant à la Dynamique des Plages Nommées en VBA
Je vais avoir troublante se référant à un Nom Dynamique de la Gamme en VBA.
Mon gammes sont définies comme
=OFFSET(Feuille!$B$2,0,0,COUNTA(Feuille!$B:$B)-1,1)
Mon code doit rechercher une gamme pour toutes les entrées dans une autre gamme, le but étant que toutes les entrées manquantes seront ajoutées. Jusqu'à présent j'ai
Sous UpdateSummary() Dim Cellule Gamme Dim rngF Que Ensemble rngF = Rien "Étape à travers chaque cellule de la plage de données Pour Chaque Cellule Dans Une Feuille De Calcul("Aspect").Range("A_Date") "recherche Résumé de la gamme pour la valeur actuelle de la cellule Ensemble rngF = Worksheets("Résumé").Range("Sum_Date").Trouver(De La Cellule.Valeur) //Ne fonctionne pas Si rngF Est Rien Alors 'Ajouter une date au Sommaire Fin De Si Ensemble rngF = Rien Cellule Suivante End Sub
Pour la boucle semble fonctionner ok. Cependant, l'utilisation de l' .Trouver la méthode qui me donne un message d'erreur.
Définie par l'Application ou par l'objet défini erreur
Il fonctionne si je remplace le nom de la gamme avec une gamme spécifique ($B$2:$B$5000), de sorte qu'il semble être de la façon dont la plage nommée est passé.
Toutes les idées seront les bienvenues.
Merci.
Tr qualification tous vos
Merci, bien qu'il ne semble pas aider. J'ai mis à jour mon code ci-dessus pour refléter les modifications, mais le résultat est toujours le même.
Quelle est la valeur de
Range
références avec la feuille de calcul. Tout non qualifiés Range
va se référer à la feuille active, de sorte que vous pourrez rencontrer des problèmes si la plage vous faites référence n'est pas sur cette feuille.Merci, bien qu'il ne semble pas aider. J'ai mis à jour mon code ci-dessus pour refléter les modifications, mais le résultat est toujours le même.
Quelle est la valeur de
Cell
lorsqu'il échoue?OriginalL'auteur Michael | 2012-08-08
Vous devez vous connecter pour publier un commentaire.
L'erreur est presque certainement parce que Excel ne peut pas trouver une plage nommée Sum_Date qui fait référence à une plage sur une feuille de calcul nommée Résumé. Les causes les plus courantes sont
OriginalL'auteur Dick Kusleika
J'ai eu un semblable, si ce n'est le même problème & voici comment je l'ai résolu:
J'ai d'abord réalisé que la méthode que j'ai utilisé pour créer mon nom, à l'aide du Gestionnaire de noms, ma plage nommée a eu une portée de Classeur. Ceci est important parce que, il n'appartient pas à la feuille de calcul, & par conséquent, ne sera pas trouvé.
Donc, Worksheets("Résumé").Range("Sum_Date") ne serait pas de travail pour moi.
Depuis mon appartenait à le classeur, la façon dont j'ai pu trouver est d'utiliser ActiveWorkbook.Noms("Sum_Date")
Pour moi, je l'ai utilisé pour supprimer la formule de plage nommée que j'utilise dans de nombreux endroits. L'énorme avantage est que la plage nommée est mis à jour qu'une seule fois au lieu de la formule d'être appelée pour chaque emplacement de cellule qui allaient s'appelle. De temps énorme retard de différence!
OriginalL'auteur Joe Hilby
J'ai fait des expériences avec ce pour quelques jours et finalement je suis venu avec la suivante. Il est peut-être pas le plus efficace mais il fait le travail pour moi!
Vaut la peine d'essayer, vous ne pensez pas!
Cela ne fonctionne pas si au lieu d'utiliser une variante vous utilisez quelque chose comme: Dim Nm Nom: Jeu de Nm = Noms("OhDear"). Toutes les variations de l'utilisation de 'Nm' a échoué!!!
OriginalL'auteur user3235601