Moyen facile de trouver la référence de cellule dans excel vba
Je suis en train de travailler sur une feuille de calcul avec beaucoup de code VBA. La plupart des références de cellules d'utiliser des chiffres, par exemple
Worksheets("Sheet1").Cells(someRow, someColumn)
Je me demandais si il n'y a aucun moyen facile de savoir exactement lequel la cellule est référencée - est-il possible de mettre un point d'arrêt sur cette ligne de code, et ensuite voir quelle cellule il va se référer à (à l'aide de la traditionnelle "BA10" style) ou vais-je avoir à le calculer à chaque fois à l'aide de divs et mods?
Pas toutes les références sont codés en dur, et je voudrais vraiment être en mesure de travailler où les données sont extraites à partir, car la cellule est accessible (pas nécessairement changé).
(modifier) Est-il possible de le faire sans changer la source d'origine de la ligne, par exemple dans un module d'événements ou de quelque chose?
OriginalL'auteur a_m0d | 2009-06-10
Vous devez vous connecter pour publier un commentaire.
Il est une autre option. Si vous apportez des modifications à une feuille, vous pouvez intercepter l'événement de Changement sur la Feuille de calcul, et à pomper le changement de gamme comme:
Chaque modification de la feuille de sortie de votre fenêtre comme ceci:
Il y a aussi l'événement SelectionChange ainsi, mais c'est rare d'être aussi utile. Il n'y a aucun évènement pour juste la "lecture" des cellules.
OriginalL'auteur Joel Goodwin
retourne BA10
OriginalL'auteur bernie
Vous pouvez utiliser l'Adresse.
De débogage.imprimer Worksheets("Feuil1").Les cellules(10, 53).Adresse
Va imprimer les plages d'adresses pour vous dans la Fenêtre exécution.
Est que ce que vous recherchez?
C'est la meilleure façon de le faire. Il n'y a pas de moyen automatique pour faire ce que vous voulez. Mais vous pouvez utiliser des variables de Débogage".Imprimer iColumn".
OriginalL'auteur JustPlainBill
Vous pouvez également modifier votre style de référence pour R1C1:
outils\options\general\style de référence L1C1
de cette façon, vous serez en mesure de savoir que le code de l'arbitrage.
OriginalL'auteur
Un autre chemin à parcourir serait l'ajout d'une montre dans le VBE (Visual Basic Editor). Vous pouvez le faire en allant à Vue>Fenêtre de surveillance pour s'assurer que la montre fenêtre est visible. Puis, à partir de menu Déboguer, cliquez sur Ajouter un espion. Si vous le faites en mode pause le contexte sera déjà réglé pour vous tout ce que vous avez à faire est de coller dans l'expression que vous souhaitez surveiller, et il sera visible. Bien sûr, cela fonctionne mieux sur les objets range (ex: rngFoo.Adresse de l'expression), mais vous pouvez les coller dans des choses comme les Feuilles de calcul(1).Les cellules(10, 53).Adresse.
Je comprends, le seul moyen que je connaisse est à l'abandon, à la fenêtre: Ctrl-G et de l'utilisation de l'impression char "?" pour voir ce que ça donne. Exemple: ?Worksheets("Feuil1").Les cellules(10, 53).Adresse
Vous savez que, lorsque dans le mode arrêt vous pouvez passer la souris sur un nom de variable dans le code pour voir ce que ça donne sans avoir besoin d'une montre, non?
En mode débogage, Vous pouvez passer la souris sur une variable dans la ligne courante, et de voir quelles sont les valeurs qu'ils ont. Ou qui a causé l'erreur.
OriginalL'auteur Oorang
Utiliser ce qui suit pour savoir lequel la cellule est l'appel de la fonction:
Exemple:
Chaque fois que cette fonction est calculée une boîte de message indique l'adresse de la cellule en l'appelant.
Être conscient que le fait d'appeler cette fonction à partir d'une autre fonction VBA enverra un message d'erreur. Vérifier http://www.cpearson.com/Excel/WritingFunctionsInVBA.aspx
OriginalL'auteur Rimskys