亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在VBA函數調用中,括號的使用規則是什么?

在VBA函數調用中,括號的使用規則是什么?

由于在傳遞給我定義的Sub的參數周圍使用方括號引起的VBA(Access 2003)中的“編譯器錯誤”,我剛剛經歷了30分鐘。我一直在尋找關于什么時候需要/適當/不適當/禁止使用方括號的體面的文章/教程/說明,但是找不到任何明確的指南。
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

從這里:


使用VBScript調用語句 調用子例程當您希望調用子例程時,可以選擇使用Call語句。與Sub一起使用時,Call語句的目的是允許您將參數列表括在括號中。但是,如果子例程未傳遞任何參數,則在使用Call語句調用Sub時,仍不應使用括號。


Call MySubroutine

如果子例程具有參數,則在使用Call語句時必須使用括號。如果有多個參數,則必須用逗號分隔參數。


Call MySubroutine(intUsageFee, intTimeInHours, "DevGuru") 

調用函數 有兩種方法可以調用函數。您可以直接調用該函數(僅按名稱),也可以使用VBScript Call語句進行調用。


通過名稱 調用函數當直接通過名稱調用函數且未分配返回值時,以下所有均為合法語法:


MyFunction

MyFunction()

MyFunction intUsageFee, intTimeInHours, "DevGuru"

如果需要返回值,可以將函數分配給變量。請注意,如果有一個或多個參數,則必須使用括號。


returnval = MyFunction

returnval = MyFunction()

returnval = MyFunction(intUsageFee, intTimeInHours, "DevGuru") 


查看完整回答
反對 回復 2019-11-29
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

我只是發現了一些奇怪的行為,即在調用帶有/不帶有括號的函數時。谷歌把我帶到這里。


sub test()

  dim a as double

  a = 1#

  p(a) 'this won't change a's value

  Debug.Print a '1

  p a  ' this is expected behavior

  Debug.Print a '2

  Call p(a) 'this is also valid

  Debug.Print a '3

end sub


Function p(a as Double) 'default is byref

  a = a + 1

end function

我的結論是,僅使用一個參數調用函數時,您必須使用Call或省略括號,否則該參數不會通過引用傳遞(正如我已經檢查過的那樣,它仍然會被調用)。


查看完整回答
反對 回復 2019-11-29
  • 3 回答
  • 0 關注
  • 1853 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號