2009-07-31 8 views
0

Notez que l'argument de la fonction s'appelle strToothpaste. Lorsque la fonction est appelée, la variable transmise utilise le même nom.Fonction utilisateur VBA: Mauvais pour le nom de l'argument et le nom de la variable soumise pour correspondre?

Private Sub DoThis() 
    Dim strToothpaste as String 
    Dim booSmellsFunny as Boolean 
    booSmellsFunny = fnc_Fragrance(strToothpaste) 
End Sub 
-------------------------- 
Private Function fnc_Fragrance(strToothpaste As String) as Boolean 
    If strToothpaste Like "Dr Watson's" Then 
    fnc_Fragrance = True 
    Else 
    fnc_Fragrance = False 
    End If 
End Function 
  • Y at-il jamais un problème nouveau en utilisant le nom?
  • Si les variables ne sont pas correctement limitées dans la portée, est-ce que l'écho des noms devient dangereux?
  • Si ce qui précède est vrai, alors cela signifie-t-il que la bonne portée signifie que les noms peuvent être renvoyés sans problème ? La récursivité affecte-t-elle ? (Double contrôle Outre les champs d'application ...)
+0

Je m'inquiétais de cela depuis des années, mais j'étais trop fainéant pour y penser. (Heck, je suis trop paresseux maintenant ... Je suis juste en train de mettre un poste à SO!) Maintenant, comme je me sens mieux à la réutilisation du code, mes noms de variables souvent "tordu" sont un problème. Je suppose que le problème consiste simplement en une plus mauvaise lisibilité. Mais j'ai besoin de toute l'aide que je peux obtenir! – Smandoli

Répondre

4
  1. Non, pas du tout, VBA est assez intelligent pour déterminer que le paramètre est un paramètre scope à la fonction
  2. Oui cela pourrait être dangereux , si vous avez l'habitude de l'option Expiclit Off, ce qui n'est jamais bon pour votre santé mentale.
  3. Oui, les noms peuvent être renvoyés sans problème avec une portée correcte.
  4. Pas du tout.

Espérons que cela aide.

+0

Si je suis fou, ce n'est pas parce que j'ai quitté Option Explicit. Merci quand même. – Smandoli

+0

Je déduis que les noms var "tweaked" ont pu être nécessaires quand je n'ai pas compris ou appliqué une bonne portée. Bien sûr, j'ai finalement dû resserrer et j'ai trouvé "normaliser" mon code est non seulement essentiel mais aussi amusant. – Smandoli

Questions connexes