2009-07-31 56 views
0

注意該函數的參數名爲strToothpaste。當函數被調用時,傳入的變量使用相同的名稱。VBA用戶函數:參數名稱和提交的變量名稱匹配不好?

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 
  • 是否有過與重複使用名稱的問題?
  • 如果變量的範圍沒有正確限制 ,那麼名稱 的名稱會變得危險嗎?
  • 如果以上情況屬實, 那麼這是否意味着良好的範圍 意味着名稱可以回顯沒有 的問題?
  • 遞歸影響 什麼? (除了 仔細檢查範圍...)
+0

我很擔心這個問題多年,但卻懶得去研究它。 (哎呀,我現在太懶了......我只是在SO上發佈一篇文章!)現在,隨着我在重新使用代碼方面做得更好,我經常「調整」的變量名稱是一件麻煩事。我想這個麻煩只是由於易讀性差。但我需要所有我能得到的幫助! – Smandoli 2009-07-31 19:35:30

回答

4
  1. 沒有一點都沒有,VBA是足夠聰明,以確定該參數是參數作用域功能
  2. 是的,這可能是危險的,如果你習慣了選擇性表達式關閉,這對你的理智來說永遠不會有好處。
  3. 有正確的作用域名可以回顯,沒有問題。
  4. 根本不是。

希望這會有所幫助。

+0

如果我瘋了,這並不是因爲我將Option Explicit關閉。不過謝謝。 – Smandoli 2009-07-31 19:31:04