仓酷云

标题: 第23章:经由过程VBA程序利用Excel服务器(二) [打印本页]

作者: 飘飘悠悠    时间: 2015-1-18 16:51
标题: 第23章:经由过程VBA程序利用Excel服务器(二)
用户总是希望勤哲能提供一些通用的模块能够给用户以借鉴,减少用户的摸索时间.正因为上述原因我决定写一个用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时代的到来,将给企业的发展带来更大的机遇,同时也面临更大的挑战。
作者: 乐观    时间: 2015-1-28 19:56
为保住菊花,这个一定得回复!
作者: 再现理想    时间: 2015-1-30 12:38
发发呆,回回帖,工作结束~
作者: 精灵巫婆    时间: 2015-2-6 11:51
我也顶起出售广告位
作者: 灵魂腐蚀    时间: 2015-2-7 02:13
啥玩应呀
作者: 若相依    时间: 2015-2-11 07:04
LZ敢整点更有创意的不?兄弟们等着围观捏~
作者: 爱飞    时间: 2015-2-17 09:37
我也来顶一下..
作者: 仓酷云    时间: 2015-3-5 18:58
不错 支持下
作者: 柔情似水    时间: 2015-3-12 11:25
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
作者: 若天明    时间: 2015-3-18 20:12
小白一个 顶一下
作者: 金色的骷髅    时间: 2015-3-24 02:37
小白一个 顶一下
作者: 愤怒的大鸟    时间: 2015-4-1 16:09
站位支持
作者: 小女巫    时间: 2015-4-1 16:31
顶起出售广告位
作者: 小魔女    时间: 2015-4-7 13:02
我是个凑数的。。。
作者: 变相怪杰    时间: 2015-4-21 04:01
撸过
作者: 冷月葬花魂    时间: 2015-4-26 11:00
元芳你怎么看?
作者: 海妖    时间: 2015-5-1 21:10
为保住菊花,这个一定得回复!
作者: 分手快乐    时间: 2015-5-6 01:29
边撸边过
作者: 第二个灵魂    时间: 2015-6-7 11:52
撸过
作者: 不帅    时间: 2015-6-15 21:03
求沙发
作者: 因胸联盟    时间: 2015-6-29 19:38
楼主呀,,,您太有才了。。。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2