CallByName的一些缺陷

CallByName 函数

执行一个对象的方法,或者设置或返回一个对象的属性。

语法

CallByName(object, procname, calltype,[args()])

CallByName 函数的语法有以下命名参数:

部分描述
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procname 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
args() 可选的:变体型(数组)

说明

CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。

在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:

None.gifCallByName Text1, "MousePointer", vbLet, vbCrosshair
None.gifResult 
= CallByName (Text1, "MousePointer", vbGet)
None.gif
CallByName Text1, "Move", vbMethod, 100100

上边是关于CallbyName函数的用法,但是如果进行如下试验,就会发现存在一些缺陷如下:

None.gif'系统提示错误
None.gif
vba.Interaction.CallByName(activedocument,"Paragraphs.Count",VbGet )

None.gif'函数运行正常
None.gif
vba.Interaction.CallByName(activedocument.Paragraphs,"Count",VbGet )

关键就在于ProcName不能是多级的属性,只能是最近的属性,为了解决这个问题,只能动点手脚了,自己处理ProcName部
分了,很是不爽。
但是CallbyName 确实是个好东西,用好了会收益不浅的。
使用Google搜索一下,有些文章不错的,记录一下:

1:根据对象名称来操作对象(非CallByName方法)
2:让数据来证明
3:后绑定方式下对Object的处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值