2010-07-19 13 views
0

suit VBA 6 dans le code Excel 2000
Réside sous une forme qui a des zones de texte, comboboxes et boutons L'un d'eux est txtUsername, une autre est txtPassword - -I a hérité ce codeComment est worksheet.object non standard créé dans ce Excel VBA

With shtName 
.Unprotect "thepassword" 
.range("somenamedrange").Value = cboComboBox.Value 
.txtUsername.Text = txtUsername.Text 
.txtPassword.Text = txtPassword.Text 
... 
End With 

le code définit une feuille de calcul des objets valeur pour deux texte qui apparaissent dans la liste d'objets éditeur VBA , mais ne sont ni définis ni mis nulle part ailleurs dans le projet Excel. L'option Explicit est utilisée sur tous les objets, formulaires et modules Microsoft Excel. Je peux créer des procédures pour ladite feuille de calcul des objets sur ladite feuille de calcul dans l'éditeur VBA (par exemple,

Private Sub txtUsername_Change() 

End Sub 

Aucun objet

worksheet.txtUsername

worksheet.txtPassword

apparaît
La valeur des deux objets n'est utilisée que par ailleurs référence spécifique worksheet.txtUsername.Text
Ces valeurs ne s'affichent pas dans la fenêtre locale après leur définition dans la feuille de calcul. Ils sont définitivement utilisés, car les requêtes Essbase réussissent à utiliser ces objets.

Résumé: je comprends formName.txtUsername.Text (ou .Value)
i ne comprennent pas un objet de feuille de calcul qui ne se définit pas, ni instancié via le code
la seule idée lumineuse que j'avais été d'exporter la feuille de calcul et la vue dans un éditeur de texte, pour voir si mes ancêtres créaient un objet "personnalisé" comme on définit une "propriété par défaut" dans un module de classe - manuellement via l'éditeur de texte (aucune mention de propriété dans la feuille de calcul .cls)

Merci.

Répondre

0

J'ai trouvé que le VBA Code Cleaner nettoyait "les références aux définitions d'objets qui ne peuvent être trouvées".

0

Les feuilles de calcul qui font partie de la feuille de calcul Excel n'ont pas besoin d'être instanciées, elles font partie du classeur et sont simplement "toujours là". Si elles ne sont pas visibles par l'utilisateur mais sont visibles dans le navigateur du projet, il peut y avoir du code dans la section "ThisWorkbook" qui rend les feuilles invisibles (.visible = false) lors du lancement du classeur.

+0

oui, la "propriété visible" ou une "propriété de type" ou une "méthode d'activation" sont intégrées à la classe de feuille de calcul Excel. Pour cette feuille de calcul uniquement, avec Me.Activate, Me.Type, ... Me.txtUsername, Me.txtPassword sont des options, mais il n'y a pas de code, pas de macro, pas de complément que je peux trouver qui injecte ces dans le cadre de l'objet de feuille de calcul Excel – nineowls

+0

pour être spécifique: L'Explorateur d'objets Excel montre VBAProject contient la classe sheetName avec les membres txtUsername et txtPassword mais il n'y a pas de définition de la façon dont ces deux membres sont injectés !! – nineowls

+0

après déprotection et afficher toutes les lignes et tous les cols F5> Spécial> Objets "aucun objet trouvé" ou un clic droit sur le membre txtUsername dans l'Explorateur d'objets "contient des références aux définitions d'objets qui ne peuvent être trouvées" – nineowls