2009-07-08 8 views
2

(DISCLAIMER: Je ne suis pas un programmeur, je passe mon temps sur serverfault, je suis un administrateur humble)Excel code vb a cessé de fonctionner (Variable non définie)

Nous avons une feuille de calcul Excel avec le code vb Il a été créé dans Office 2003.

Nous sommes récemment passés à Office 2007 et la feuille de calcul a continué à fonctionner normalement.

Cependant, après l'installation du Service Pack 2 pour Office 2007, la feuille de calcul échoue maintenant avec une erreur indiquant: « variable non définie »

Si je commente la déclaration « Option Explicit » en haut du code alors le code fonctionne bien. Ce que je ne comprends pas, c'est que lorsque l'erreur se produit, elle se produit sur quelque chose qui n'est même pas une variable (à moins que je me trompe?).

Cliquez sur l'image ci-dessous pour voir la capture d'écran:

http://filedb.experts-exchange.com/incoming/2009/06_w23/t144890/snip.JPG

Répondre

4

La référence au package/addin/quoi que DataGrid existe doit probablement être référencée de nouveau. Vérifiez Outils -> Références dans le menu. OK, voici ce que j'ai trouvé, il semble que si vous installez Microsoft Security Advisory 960715, ce contrôle est tué. Il existe des correctifs qui peuvent ou peuvent ne pas fonctionner pour vous. Un bon article est sur ce blog:

VSOD Blog

+0

J'ai tenté cette opération en décochant la case «Microsoft DataGrid Control 6.0» (fichier MSDATGRD.OCX) dans les références. Enregistrer le fichier .xlsm, puis l'ajouter à nouveau. Toujours obtenir la même erreur. – TheCleaner

0

La variable est un objet qui existe dans la feuille de calcul Excel lui-même, d'où les événements que vous voyez ci-dessus l'état DataGrid1_Click qui est un gestionnaire d'événements . C'est pourquoi vous ne pouvez pas voir la définition de la variable. Peut-être que DataGrids n'est pas pris en charge dans les installations post-SP2?

0
  1. Vérifiez que l'objet est toujours nommé "DataGrid1".
  2. Essayez de préfixer l'objet avec "Me" (Me.DataGrid1)
  3. Peut être un symptôme précoce de corruption. Essayez de couper (ctrl-x) tout le code. Ensuite, à partir du menu de débogage, cliquez sur compiler. Collez le code dans une compilation à nouveau. Parfois, cette mesure simple va le réparer. (Si vous ne soupçonnez toujours pas de corruption, il existe des mesures plus avancées à prendre.)
Questions connexes