• CallByName的一些缺陷


    CallByName 函数

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

    语法

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

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

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

    说明

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

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

    CallByName Text1, "MousePointer", vbLet, vbCrosshair
    Result 
    = CallByName (Text1, "MousePointer", vbGet)
    CallByName Text1, "Move", vbMethod, 100100

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

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

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

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

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

  • 相关阅读:
    回溯法之迷宫问题
    一个.net的正则表达式测试工具
    关于FeedSky话题广告
    google notebook更新了&digg notebook
    近日,来北京近一月
    城堡技术论坛(castle.org.cn)上线!
    玉龙雪山
    消息队列(Message Queue)
    Mac Theme for Google Reader
    开始学习npetshop2
  • 原文地址:https://www.cnblogs.com/Duiker/p/224539.html
Copyright © 2020-2023  润新知