仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4792|回复: 20
打印 上一主题 下一主题

[官方教程] 第23章:经由过程VBA程序利用Excel服务器(二)

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 16:51:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用户总是希望勤哲能提供一些通用的模块能够给用户以借鉴,减少用户的摸索时间.正因为上述原因我决定写一个用Excel服务器实现各种应用系统的系列教程,引导客户快速上手迅速搭建出自己需要的系统 23.2 Excel服务器VBA编程接口

Excel服务器客户端组件是在安装目次下的一个文件----ESClient.dll,它不是VBA程序,而是一个Com加载项,相称于对Excel附加了功效。Com载加项也是一种对象,我们能够在VBA程序中挪用它供应的办法(编程接口)。
若要在VBA程序中挪用Excel服务器的功效,起首必要声明对象,经由过程挪用对象的办法来完成想要的功效,最初,还必要开释对象。
以下面的代码片段,第1行声了然一个变量对象oAdd,第2行设置该变量为Excel服务器客户端组件所对应的Com加载项。两头部分详细的操纵,最初1行开释对象。
若要经由过程VBA程序利用Excel服务器,开首的两行和最初的一行代码都是必须的,所分歧的只是两头省略的部分。

Dim oAdd As Object
oAdd = Application.COMAddIns("ESClient.Connect").Object
…….
       这里能够挪用客户端组件的分歧办法
…….
oAdd = Nothing
23.2.1 主动保留、一连输出

办法申明
saveCase办法,感化是保留以后正在填报的表单。该办法有三个参数:
参数1:要省略
参数2:布尔型,是不是省略保留对话框,默许值为False,也即显现保留对话框。
参数3:布尔型,是不是扣问持续填写下一张,默许值为True,也即扣问是不是填下一张。
前往值:布尔型,True暗示保留乐成,False暗示保留失利
示例
我们一般用Excel服务器填报完成一张表单后,必要手工点击【保留】工具栏按钮,或挑选“文件à保留”菜单,才干保留。关于有大批表单需一连输出的情形,这类做法必要键盘和鼠标瓜代操纵,效力不高。
我们能够经由过程在Worksheet_ctionChange事务处置程序中挪用saveCase办法,使得录进员只必要操纵键盘,当数据录进完成,光标跳转到最初一个数据项出,主动保留,呈现新的表单守候输出,过程当中不必要利用鼠标。
假定有以下的模版,界说三个数据项:x、y和录进工夫,个中录进工夫有默许值,x和y必要输出。


<br>











我们但愿录进员的帮助举措次数起码:
输出x,按回车,输出y,按回车,保留乐成,提醒是不是填下一张,按回车(相称于回覆【是】),呈现新的一张空缺表,光标主动回到C2处。
输出一张票据的过程当中帮助举措只要三次回车,没有鼠标举措。上面看一下完成体例。
在模版的计划形态下,翻开Visual Basic编纂器,在Worksheet_ctionChange事务处置程序中输出以下代码:(为解说便利,加上了行号)

1
Private Sub Worksheet_ctionChange(ByVal Target As Range)
2
    Dim oAdd As Object
3
    Dim bResult As Boolean
4
   
5
    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").ct
13
        End If
14
    End If
15
   
16
    oAdd = Nothing
17
End Sub

第1行,Worksheet_ctionChange为事务处置程序名,它对应于单位地区被选中这一事务。这个事务处置程序有一个参数Target,它代表被选中的单位地区。
第2行,声明对象变量(必需如许写)
第5行,设置变量oAdd对应于Excel服务器客户端组件(必需如许写)
第7行,判别光标跳到的单位格是否是C4,假如不是,间接转到第16行(甚么也没做)
第8行,(光标跳到了C4单位格),挪用Excel服务器客户端组件供应的saveCase办法,实践保留以后已填好的表单,不弹出保留对话框,但保留后会扣问是不是持续填写。
第12行,(保留乐成)光标跳转到C2处,守候持续输出。
第16行,开释对象(必需如许写)

本例在示例数据库中。

经过十年的发展,已成为拥有180多名员工,年销售额1.5亿元的专业厂商,并在上海、合肥都拥有生产基地,是国内最具规模的室内光缆生产厂家之一。随着FTTH时代的到来,将给企业的发展带来更大的机遇,同时也面临更大的挑战。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 18:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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