本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。 (oTemp,vProps(lCount), VbGet) Next If CallByName(oTemp,vProps(lProps), VbGet) 图2 在代码中,我们使用了CallByName函数来增强其适应性。 CallByName函数的语法为: CallByName(object, procname,calltype, [args()]) 其中: 1.参数object,必需,Variant型(Object), 然而,如果想要在CallByName函数中使用下面更通用一些的代码: Sub test() MsgBox CallByName(ActiveCell, "Interior.Colorindex", VbGet
str) '-----用数据填充脚本 i = 4 Application.Calculation = xlCalculationManual '-----关闭自动重算 If CallByName (CallByName(CallByName(msc.CodeObject, "query", VbGet), "data", VbGet), "result", VbGet) = "" Then MsgBox , vbInformation, "VB小源码" For Each TMP In CallByName(CallByName(CallByName(msc.CodeObject, "query"
下面我们来尝试取,第一层里面的“信息”的值,只需要以下操作即可 Debug.Print VBOBJ.jsonobj.信息 3.5.2.下面我们来单独取,“结果”中,“李四”的“爱好”,这里用到了“CallByName ”,因为JScriptTypeInfo对象不予许直接点属性 Set 结果集 = VBOBJ.jsonobj.结果 Set 李四 = CallByName(结果集, "1", VbGet) Debug.Print 李四.爱好 3.5.2.下面再看看怎么取出李四喜欢的美女的信息 Set 结果集 = VBOBJ.jsonobj.结果 Set 李四 = CallByName(结果集, "1", VbGet Debug.Print 李四喜欢的美女.身高 Next 3.5.3.取相同王五兄弟的喜欢的美女类型与上面的方法一样 Set 结果集 = VBOBJ.jsonobj.结果 Set 王五兄弟 = CallByName
Function End If strXML = sXML '解析XML,直到超过了文本长度 Do While pNext < iStrXMLLen '使用CallByName 调用相应状态的函数 state = VBA.CallByName(Me, "S" & VBA.CStr(state), VbMethod) '99作为出错情况
下面是一个示例代码: def callByName(param: => Int): Unit = { println("Inside callByName") println("Param 1: (randomNumber()) 输出: Inside callByName Generating random number Param 1: 53 Generating random number Param 2: 87 在上述示例中,定义了一个名为 callByName 的函数,它接受一个传名参数 param。 在主程序中,我们调用 callByName 函数,并将 randomNumber() 作为传名参数传递进去。 当程序执行时,会先打印出 "Inside callByName" 的消息,然后两次调用 param,即 randomNumber()。在每次调用时,都会重新生成一个新的随机数,并打印出相应的值。
下面是一个示例代码: def callByName(param: => Int): Unit = { println("Inside callByName") println("Param 1: (randomNumber()) 输出: Inside callByName Generating random number Param 1: 53 Generating random number Param 2: 87 在上述示例中,定义了一个名为 callByName 的函数,它接受一个传名参数 param。 在主程序中,我们调用 callByName 函数,并将 randomNumber() 作为传名参数传递进去。 当程序执行时,会先打印出 "Inside callByName" 的消息,然后两次调用 param,即 randomNumber()。在每次调用时,都会重新生成一个新的随机数,并打印出相应的值。
下面是一个示例代码: def callByName(param: => Int): Unit = { println("Inside callByName") println("Param 1: (randomNumber()) 输出: Inside callByName Generating random number Param 1: 53 Generating random number Param 2: 87 在上述示例中,定义了一个名为 callByName 的函数,它接受一个传名参数 param。 在主程序中,我们调用 callByName 函数,并将 randomNumber() 作为传名参数传递进去。 当程序执行时,会先打印出 "Inside callByName" 的消息,然后两次调用 param,即 randomNumber()。在每次调用时,都会重新生成一个新的随机数,并打印出相应的值。
CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。
下面是一个示例代码:def callByName(param: => Int): Unit = { println("Inside callByName") println("Param 1: " param)}def randomNumber(): Int = { println("Generating random number") scala.util.Random.nextInt(100)}callByName Inside callByNameGenerating random numberParam 1: 53Generating random numberParam 2: 87在上述示例中,定义了一个名为 callByName 在主程序中,我们调用 callByName 函数,并将 randomNumber() 作为传名参数传递进去。 当程序执行时,会先打印出 "Inside callByName" 的消息,然后两次调用 param,即 randomNumber()。在每次调用时,都会重新生成一个新的随机数,并打印出相应的值。