阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 2905|回复: 2

[求助] excel VBA到底有多少种方法?

[复制链接]
  • TA的每日心情
    奋斗
    2018-1-31 16:17
  • 签到天数: 107 天

    [LV.6]常住居民II

    发表于 2009-2-16 09:54:23 | 显示全部楼层 |阅读模式
    请问有谁知道勤哲excel中vba到底有那些方法?具体语句格式是什么?例如saveCase方法、execQuery方法、newReport方法等。

    或者有这方面教程的请共享一下.

    [ 本帖最后由 xzl4598 于 2009-2-16 09:55 编辑 ]
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-2-16 20:39:32 | 显示全部楼层
    saveCase方法
    方法说明saveCase方法,作用是保存当前正在填报的表单。该方法有三个参数:

    参数1:要省略

    参数2:布尔型,是否省略保存对话框,默认值为False,也即显示保存对话框。

    参数3:布尔型,是否询问继续填写下一张,默认值为True,也即询问是否填下一张。

    返回值:布尔型,True表示保存成功,False表示保存失败

    示例我们通常用Excel服务器填报完成一张表单后,需要手工点击【保存】工具栏按钮,或选择“文件à保存”菜单,才能保存。对于有大量表单需连续输入的情况,这种做法需要键盘和鼠标交替操作,效率不高。

    我们可以通过在Worksheet_selectionChange事件处理程序中调用saveCase方法,使得录入员只需要操作键盘,当数据录入完成,光标跳转到最后一个数据项出,自动保存,出现新的表单等待输入,过程中不需要使用鼠标。

    假设有如下的模版,定义三个数据项:x、y和录入时间,其中录入时间有默认值,x和y需要输入。



    我们希望录入员的辅助动作次数最少:

    输入x,按回车,输入y,按回车,保存成功,提示是否填下一张,按回车(相当于回答【是】),出现新的一张空白表,光标自动回到C2处。

    输入一张单据的过程中辅助动作只有三次回车,没有鼠标动作。下面看一下实现方式。

    在模版的设计状态下,打开Visual Basic编辑器,在Worksheet_selectionChange事件处理程序中输入如下代码:(为讲解方便,加上了行号)

      

    1
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    2
         Dim oAdd As Object

    3
         Dim bResult As Boolean

    4
       

    5
         Set oAdd = Application.COMAddIns("ESClient.Connect").Object

    6
       

    7
         If Target.Address = "$C$4" Then

    8
             bResult = oAdd.saveCase(, True, True)

    9
             If bResult = False Then

    10
                 MsgBox "保存失败!"

    11
             Else

    12
                 Range("C2").Select

    13
             End If

    14
         End If

    15
       

    16
         Set oAdd = Nothing

    17
    End Sub


    第1行,Worksheet_SelectionChange为事件处理程序名,它对应于单元区域被选中这一事件。这个事件处理程序有一个参数Target,它代表被选中的单元区域。

    第2行,声明对象变量(必须这样写)

    第5行,设置变量oAdd对应于Excel服务器客户端组件(必须这样写)

    第7行,判断光标跳到的单元格是不是C4,如果不是,直接转到第16行(什么也没做)

    第8行,(光标跳到了C4单元格),调用Excel服务器客户端组件提供的saveCase方法,实际保存当前已填好的表单,不弹出保存对话框,但保存后会询问是否继续填写。

    第12行,(保存成功)光标跳转到C2处,等待继续输入。

    第16行,释放对象(必须这样写)
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-2-16 20:42:57 | 显示全部楼层
    execQuery方法
    execQuery方式,作用是应用指定的表间公式,它只有一个参数,为字符串类型,其内容是一条或若干条表间公式的名称,若要执行的表间公式不止一条,彼此间需要用逗号分割(英文逗号)。

    例如:

    execQuery(“查询”),表示要执行当前模版上定义的表间公式“查询”

           execQuery(“查询,统计”),表示要连续执行当前模版上定义的表间公式“查询”和“统计”。

    示例复习第9章建立的“销售台帐”模板,我们定义了一个手动执行的表间公式“组合条件查询”。在模板上增加一个按钮,如图:



    图 20‑5

    在按钮的Click事件处理程序中写如下代码:

    1
    Private Sub cmdQry_Click()

    2
         Dim oAdd As Object

    3
       

    4
         Set oAdd = Application.COMAddIns("ESClient.Connect").Object

    5
       

    6
         Range("C4").select

    7
         oAdd.execQuery ("组合条件查询")

    8
       

    9
         Set oAdd = Nothing

    10
    End Sub


      

    第2、4行,声明对象变量、赋值(必须这样写)

    第6行,光标放置到明细表的第1行

    第7行,执行表间公式

    第9行,释放对象(必须这样写)
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表