2 votes

Excel VBE exports incohérents

Je suis en train d'exporter des fichiers .bas à partir d'un fichier .xls comme décrit ici: Exporting A VBComponent Code Module To A Text File pour les vérifier dans un dépôt SVN.

Je rencontre le problème suivant qui provoque un changement de casse dans les noms de variables des fichiers qui n'est en réalité pas réel (ou du moins pas pertinent).

Des déclarations comme celles-ci sont reformatées/modifiées de casse :

rngTenors.Cells(i, 1) 
change en 
rngTenors.cells(i, 1)

(subtil mais toujours différent et cela est détecté par l'outil de différenciation que j'utilise et cache les véritables changements sur le fichier dans le bruit que cela génère)

Toute idée pour empêcher cela serait appréciée.

1voto

Mark Nold Points 3553

Je fais quelque chose de similaire mais je n'ai pas vu ce que vous vivez. Je n'utilise pas les mêmes routines d'exportation mais elles semblent similaires à première vue.

Quelques questions.

1) Utilisez-vous option explicit, et avez-vous une variable nommée cell n'importe où?

2) Si vous Commit, puis apportez quelques modifications, exportez le fichier .bas et Committez à nouveau, à quoi ressemble la différence?

3) Ouvrez-vous et comparez-vous les fichiers .bas dans un éditeur de code conscient (par exemple: Ultraedit) qui peut changer votre casse?

Je suppose juste... mais la capitalisation de l'éditeur VB peut être étrange si vous nommez des variables de la même manière que des méthodes ou des propriétés. De plus, je ne vois pas pourquoi votre exportation exporterait de manière inconsistante .Cell je suppose que si elle exporte en .cell alors cela devrait toujours exporter en .cell et ne pas poser de problème.

Ce ne sont que quelques idées, bonne chance :)

1voto

ThunderFrame Points 7498

Le VBE garde en mémoire cache interne des noms de variables, y compris la casse, donc même si vous avez trouvé une variable appelée cell et l'avez renommée, VBA pense toujours que c'est un nom valide, et donc il conserve la casse dans tous les usages de ce texte.

Vous pouvez tromper le VBE en réinitialisant la casse des variables (et cela fonctionne aussi pour les problèmes de casse sur les méthodes) en déclarant temporairement une variable avec la casse correcte:

Public Cell as String

Et puis supprimer cette variable. Vous devriez alors constater que toutes les cas sont corrigées dans votre projet (et tout projet qui s'y réfère).

0voto

HK_CH Points 454

En effet, j'ai trouvé quelque chose dans le code comme cela a été suggéré ci-dessus.

dim cell

J'ai maintenant renommé cette variable et aucune reformatage n'a eu lieu depuis. J'espère que cela a résolu le problème. Merci beaucoup pour votre aide!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X