vba 招聘财务vba自动化化ping -t并定时停止

R+kintr+makdown完成自动化报告
公司有一天突然想到了自动化报告,这个事情就落在了我的身上,花了一个星期查资料,发现业界常用的是LeTeX以及LyX,无比的汗颜,后来又找到yihui大大写的knitr包,发现这个加上markdown还是比较靠谱的一种选择,所以在这里就记录一下如何操作的。
markdown作为一种轻量级语言,自己去度娘百科找找也就可以了解一个大概了,当然也可以参考[1],这里就不细说了,说一下学习过程中觉得有用的东西,对于后来学习的小伙伴可能有用;
在写报告markdown的过程中,应该熟练的操作,觉得有几个点需要注意一下,在这里说一下
首先,是题目的级别是用#表示的
2段落之间要用空行来表示
遇到的问题,保存了Rmd后,再打开是乱码
Rstudio只能保存在我的文档中,貌似保存在其他地方不容易识别
pandoc的R包是pander,装上之后docx可以转化,但是pdf转化不成功
图需要修改,转化成doc版的图会自动放大
latex写公式的语法;
注意:markdown在#
题目 和上一端之间应该加上一个回车
[1]:http://www.jianshu.com/p/PpDNMG
[2]:https://github.com/yihui/r-ninja/blob/master/11-auto-report.md
R与自动化报告
数据分析(入门篇)-第四章-让报告自动化(VBA)-Part1(Excel报告自动化)
R语言自动化报告格式——knitr
麦肯锡报告:到2030年机器人将取代8亿人的就业(上)
Rmarkdown关于PDF报告的中文输出问题
没有更多推荐了,&|&&|&&|&&|&&
当前位置: >
【VBA研究】用Ping命令测试IP地址是否通达
作者:iamlaosong & 来源:转载 &
摘要: 作者:iamlaosong单位中客服人员一般都不太懂计算机,为了出现问题时有个初步了解,需要知道是网络问题还是程序问题。其实多数情况下都是网络问题,可是他们连简单的Ping命令都不会,为此,我用VBA做了个工具,测试网络是否通达。工具使用VBA执行ping命令,并将结果保存到工作表中,程序界面如下:本工具下载地址:点击打开链接程序如下:'通过Ping命令检查IP是否通达
PublicSubget_
作者:iamlaosong
单位中客服人员一般都不太懂计算机,为了出现问题时有个初步了解,需要知道是网络问题还是程序问题。其实多数情况下都是网络问题,可是他们连简单的Ping命令都不会,为此,我用VBA做了个工具,测试网络是否通达。
工具使用VBA执行ping命令,并将结果保存到工作表中,程序界面如下:
本工具下载地址:点击打开链接
程序如下:
'通过Ping命令检查IP是否通达
Public Sub get_data()
'根据工作表中的查询语句读取数据
Dim oExec As Object, oShell As Object
Dim Ip, Stat As String
Dim i, k, kk, lineno, row1 As Long
'On Error Resume Next
lineno = [A65536].End(xlUp).Row
maxrow = Sheets("查询结果").UsedRange.Rows.Count
If maxrow &= 2 Then
Sheets("查询结果").Range("A2:F" & maxrow).ClearContents
Set oShell = CreateObject("Wscript.shell")
For i = 2 To lineno
Stat = Cells(i, 3)
If UCase(Stat) = "Y" Then
kk = kk + 1
Ip = Cells(i, 2)
result = ""
If Ip = "" Then Exit For
cmdping = "ping " & Ip & " -n 1"
Set oExec = oShell.exec(cmdping)
'result = vbaPing(Ip)
Do Until oExec.stdout.AtEndOfStream
result = result & oExec.stdout.readline() & Chr(13)
'Debug.Print result
'XP反馈:Lost = 0 (0% loss)
Win7反馈:丢失 = 0 (0% 丢失)
If InStr(result, "Lost = 0 (0% loss)") & 0 Or InStr(result, "丢失 = 0 (0% 丢失)") & 0 Then
Cells(i, 3) = "OK"
Cells(i, 3) = "no"
Sheets("查询结果").Cells(i, 1) = Ip
Sheets("查询结果").Cells(i, 2) = result
Set oExec = Nothing
Set oShell = Nothing
msg = MsgBox("查询完毕,共查询" & kk & "个IP地址!", vbOKOnly, "AHEMS:iamlaosong")
用这个方法不仅可以测试数字IP,域名也可以测试,缺点是有弹窗,速度慢。另一种办法是用API测试,没有弹窗,速度很快,但是只能测试数字IP,程序如下:
Option Explicit
Private Const IP_SUCCESS As Long = 0
Private Const IP_STATUS_BASE As Long = 11000
Private Const IP_BUF_TOO_SMALL As Long = (11000 + 1)
Private Const IP_DEST_NET_UNREACHABLE As Long = (11000 + 2)
Private Const IP_DEST_HOST_UNREACHABLE As Long = (11000 + 3)
Private Const IP_DEST_PROT_UNREACHABLE As Long = (11000 + 4)
Private Const IP_DEST_PORT_UNREACHABLE As Long = (11000 + 5)
Private Const IP_NO_RESOURCES As Long = (11000 + 6)
Private Const IP_BAD_OPTION As Long = (11000 + 7)
Private Const IP_HW_ERROR As Long = (11000 + 8)
Private Const IP_PACKET_TOO_BIG As Long = (11000 + 9)
Private Const IP_REQ_TIMED_OUT As Long = (11000 + 10)
Private Const IP_BAD_REQ As Long = (11000 + 11)
Private Const IP_BAD_ROUTE As Long = (11000 + 12)
Private Const IP_TTL_EXPIRED_TRANSIT As Long = (11000 + 13)
Private Const IP_TTL_EXPIRED_REASSEM As Long = (11000 + 14)
Private Const IP_PARAM_PROBLEM As Long = (11000 + 15)
Private Const IP_SOURCE_QUENCH As Long = (11000 + 16)
Private Const IP_OPTION_TOO_BIG As Long = (11000 + 17)
Private Const IP_BAD_DESTINATION As Long = (11000 + 18)
Private Const IP_ADDR_DELETED As Long = (11000 + 19)
Private Const IP_SPEC_MTU_CHANGE As Long = (11000 + 20)
Private Const IP_MTU_CHANGE As Long = (11000 + 21)
Private Const IP_UNLOAD As Long = (11000 + 22)
Private Const IP_ADDR_ADDED As Long = (11000 + 23)
Private Const IP_GENERAL_FAILURE As Long = (11000 + 50)
Private Const MAX_IP_STATUS As Long = (11000 + 50)
Private Const IP_PENDING As Long = (11000 + 255)
Private Const PING_TIMEOUT As Long = 500
Private Const WS_VERSION_REQD As Long = &H101
Private Const MIN_SOCKETS_REQD As Long = 1
Private Const SOCKET_ERROR As Long = -1
Private Const INADDR_NONE As Long = &HFFFFFFFF
Private Const MAX_WSADescription As Long = 256
Private Const MAX_WSASYSStatus As Long = 128
Public PingTime As Long
Private Type ICMP_OPTIONS
OptionsSize
OptionsData
Private Type ICMP_ECHO_REPLY
RoundTripTime
DataPointer
As ICMP_OPTIONS
As String * 250
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Long
wMaxUDPDG As Long
dwVendorInfo As Long
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "wsock32" () As Long
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function inet_addr Lib "wsock32" (ByVal s As String) As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal IcmpHandle As Long) As Long
Private Declare Function IcmpSendEcho Lib "icmp.dll" (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Long, ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, ByVal Timeout As Long) As Long
'Private Declare Function WSAGetLastError Lib "wsock32" () As Long
'Private Declare Function gethostname Lib "wsock32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
'Private Declare Function gethostbyname Lib "wsock32" (ByVal szHost As String) As Long
'Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest As Any, xSource As Any, ByVal nbytes As Long)
Private Function GetStatusCode(status As Long) As String
On Error GoTo ErrLine
Dim Msg As String
GetStatusCode = ""
Select Case status
Case IP_SUCCESS:
Msg = "ip success"
Case INADDR_NONE:
Msg = "inet_addr: bad IP format"
Case IP_BUF_TOO_SMALL:
Msg = "ip buf too_small"
Case IP_DEST_NET_UNREACHABLE:
Msg = "ip dest net unreachable"
Case IP_DEST_HOST_UNREACHABLE: Msg = "ip dest host unreachable"
Case IP_DEST_PROT_UNREACHABLE: Msg = "ip dest port unreachable"
Case IP_DEST_PORT_UNREACHABLE: Msg = "ip dest port unreachable"
Case IP_NO_RESOURCES:
Msg = "ip no resources"
Case IP_BAD_OPTION:
Msg = "ip bad option"
Case IP_HW_ERROR:
Msg = "ip hw_error"
Case IP_PACKET_TOO_BIG:
Msg = "ip packet too_big"
Case IP_REQ_TIMED_OUT:
Msg = "ip req timed out"
Case IP_BAD_REQ:
Msg = "ip bad req"
Case IP_BAD_ROUTE:
Msg = "ip bad route"
Case IP_TTL_EXPIRED_TRANSIT:
Msg = "ip ttl expired transit"
Case IP_TTL_EXPIRED_REASSEM:
Msg = "ip ttl expired reassem"
Case IP_PARAM_PROBLEM:
Msg = "ip param_problem"
Case IP_SOURCE_QUENCH:
Msg = "ip source quench"
Case IP_OPTION_TOO_BIG:
Msg = "ip option too_big"
Case IP_BAD_DESTINATION:
Msg = "ip bad destination"
Case IP_ADDR_DELETED:
Msg = "ip addr deleted"
Case IP_SPEC_MTU_CHANGE:
Msg = "ip spec mtu change"
Case IP_MTU_CHANGE:
Msg = "ip mtu_change"
Case IP_UNLOAD:
Msg = "ip unload"
Case IP_ADDR_ADDED:
Msg = "ip addr added"
Case IP_GENERAL_FAILURE:
Msg = "ip general failure"
Case IP_PENDING:
Msg = "ip pending"
Case PING_TIMEOUT:
Msg = "ping timeout"
Case Else:
Msg = "unknown msg returned"
End Select
GetStatusCode = Msg
Exit Function
End Function
Private Function Ping(sAddress As String, sDataToSend As String, ECHO As ICMP_ECHO_REPLY) As Long
On Error GoTo ErrLine
Dim hPort As Long
Dim dwAddress As Long
dwAddress = inet_addr(sAddress)
If dwAddress && INADDR_NONE Then
hPort = IcmpCreateFile()
If hPort Then
Call IcmpSendEcho(hPort, dwAddress, sDataToSend, Len(sDataToSend), 0, ECHO, Len(ECHO), PING_TIMEOUT)
Ping = ECHO.status
Call IcmpCloseHandle(hPort)
Ping = INADDR_NONE
Exit Function
Ping = INADDR_NONE
End Function
Public Function PingIP(ByVal szIp As String) As Boolean
On Error GoTo ErrLine
Dim WSAD As WSADATA
Dim ECHO As ICMP_ECHO_REPLY
Dim ret As Long
'Delay 150
PingIP = False
PingTime = Empty
If WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS Then
ret = Ping(Trim(szIp), "tanaya", ECHO)
PingTime = ECHO.RoundTripTime
If InStr(1, GetStatusCode(ret), "success") && 0 Then
WSACleanup
PingIP = True
PingTime = ECHO.RoundTripTime
Exit Function
Exit Function
End Function
'主程序:通过API检查IP是否通达,不支持域名解析。
Public Sub NetCheck()
'根据工作表中的查询语句读取数据
Dim Ip, Stat As String
Dim i, k, kk, lineno As Long
'On Error Resume Next
lineno = [B65536].End(xlUp).Row
For i = 2 To lineno
Stat = Cells(i, 3)
If UCase(Stat) = "Y" Then
kk = kk + 1
Ip = Cells(i, 2)
If Ip = "" Then Exit For
If PingIP(Ip) Then
Cells(i, 3) = "OK"
Cells(i, 3) = "no"
Stat = MsgBox("查询完毕,共查询" & kk & "个IP地址!", vbOKOnly, "AHEMS:iamlaosong")
版权所有 IT知识库 CopyRight (C)
IT知识库 IT610.com , All Rights Reserved.扫一扫下载手机客户端
扫描我,关注团购信息,享更多优惠
||网络安全
| | | | | | | | | | | | | | | |
||电子电工
汽车交通| | | | | | | | | |
数理化图书
||投资理财
| | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 视频教程|
出版社分类专区
电子工业出版社专区
人民邮电出版社专区
清华大学出版社专区
Excel VBA实战技巧精粹修订版 (Excel Home的最新力作,别怕,Excel VBA其实很简单 的进阶篇,从夯实基本功到修炼实力的必读精典。VBA,破译职场生存密码,高效率人士的秘密武器。)
定价:¥69.00
校园优惠价:¥53.13 (77折)
促销活动:
此商品暂时缺货(可留下联系方式,到货将第一时间通知您)
如果您急需团购,可点击“团购急调”按钮将此书加入购物车,由客服人员为您协调调货!
电话号码:
*邮箱地址:
ISBN:4上架时间:出版日期:2013 年1月开本:16开页码:572版次:2-1
所属分类:
  Excel Home利剑出鞘,招招精彩!
从社区上百万提问中提炼出的实用技巧
全面直击Excel VBA应用精髓
Excel Home是著名的华话Office技术社区、资源站点,微软技术社区联盟成员。
本书内容侧重于ExcelVBA使用技巧,旨在帮助Excel VBA的初学者和有一定ExcelVBA应用基础、希望进阶的读者。全书精选了279个技巧、近300个典型实例,并辅以深入浅出的剖析,力求让更多希望深入掌握ExcelVBA技巧的读者取得更大的提高。`
本书分为8篇,第一篇主要介绍ExcelVBA基础知识;第二篇介绍常用的Excel对象的应用技巧;第三篇介绍Excel函数和加载宏的应用技巧;第四篇主要介绍ExcelVBA开发过程中交互式设计的使用技巧;第五篇介绍如何使用VBA操作文件对话框、搜索文件、操作文件和文件夹等技巧;第六篇以一个名为“学生管理”的数据库为例介绍ADO的应用;第七篇介绍如何使用ExcelVBA访问Internet及进行相关操作、读写XML文档、操控其他的Office应用程序等高级编程技巧;第八篇介绍ExcelVBA代码调试和错误处理的技巧,以及一些有效的代码优化技术。
本书内容丰富、图文并茂,适合各学习阶段的读者阅读。对于ExcelVBA初学者,通过阅读本书能够学到正确的学习方法,快速掌握VBA编程的基础知识;对于有一定ExcelVBA基础的读者,可以吸收书中的学习经验、解决方案和思路,不断提高VBA应用水平。
作者简介――Excel VBA程序开发精锐郗金甲――――
网名taller,微软全球最有价值专家(MVP),ExcelHome“程序开发版”版主,通信行业的资深专家。擅长以Excel为平台的程序设计工作,开发过多个解决方案,畅销图书《Excel实战技巧精粹》、《Excel应用大全》系列和《ExcelVBA实战技巧精粹》的作者之一。范进勇――――网名fanjy,曾任ExcelHome“Office图书品评版”版主,从事水利工程管理。酷爱Excel,喜欢研究和使用ExcelVBA,并热衷于分享Excel程序开发实践经验。撰写多篇有影响力的Excel编程学习博客文章,深受广大网友欢迎。李练――――网名清风_ll,Excel Home“程序开发版”版主,服务于电信行业。对ExcelVBA有深入的研究和丰富的实战经验。赵启永――――网名qee用,曾任Excel Home“程序开发版”版主,在机械制造行业从事人力资源管理工作多年,熟悉ExcelVBA程序开发。袁竹平――――网名yuanzhuping,ExcelHome“程序开发版”版主,企业财务管理专家,对Excel在财务、公司管理方面的应用有丰富的经验。文小峰――――网名Winland,Excel Home“程序开发版”版主,从事产品工程工作多年,熟悉Excel VBA程序开发。刘晓鹰――――网名ldy、ldy888,ExcelHome“程序开发版”版主,自由职业者、物流行业ERP软件作者,删除Excel程序开发与数据库编程开发,拥有多年中小企业优化管理解决方法经验。周庆麟――――网名Kevin,中国最资深的微软全球最有价值专家(MVP)之一,ExcelHome创始人、站长,多年来从事于企业财务和信息化管理工作,对MicrosoftOffice在销售、财务、物流和公司管理方面的应用有着深入的研究,曾参与策划和编写了几十本畅销Office技术图书。同时也是一名优秀的技术顾问和培训讲师,有丰富的授课经验。
01 VBA技术概览&1
02 透视Excel VBA&2
03 Excel VBA学习方法和思路&4
04 Excel VBA用户的水平层级&9
第一篇 Excel VBA基础&11
第1章 Excel VBA基础知识&12
技巧1 录制宏并获取有效的代码&12
技巧2 执行宏(调用过程)的5种方式&15
技巧3 快速输入代码的方法&20
  非常感谢您选择了本书。
  丛书简介
  当《ExceI实战技巧精粹》出版以后,我们的成果在受到大家肯定的同时,也有许多热心读者提出了关于续写“精粹”的要求。我们也非常清楚,一方面,Excel的应用技巧是如此之多,而且在Excel Home上每天还在推陈出新;而另一方面,不同的用户的应用领域会有所区别,他们的工作任务决定了使用Excel的侧重点不同。所以,如果只有一本《ExceI实战技巧精粹》肯定难以满足所有人的需要。
  如果按照主要功能来划分,Excel的应用大致可以有5个方面,分别是数据操作与处理、图表与图形、公式与函数、数据分析、宏与VBA,如下图所示。
  基于这样的划分标准,我们再度组织了多位来自Excel Home的中国资深Excel专家,继续从数百万技术交流帖中挖掘网友们最关注或最迫切需要掌握的Excel应用技巧,并重新演绎、汇编,再结合一小部分《ExceI实战技巧精粹》中最经典的内容,打造出全新的”精粹”系列图书。
  作为《ExceI实战技巧精粹》的后续系列图书,全套图书秉承了其简明、实用和高效的特点,以及“授人以渔”式的传教风格。同时,通过提供大量的实例,并在内容编排上尽量细致和人性化,以求读者能方便而又愉快地学习。
  本系列图书的作者大多是《ExceI实战技巧精粹》和《ExceI应用大全》的作者,在经过两本畅销书的写作磨砺之后,他们的写作风格更加成熟,经验也更加丰富。
  因为每本图书都各有侧重点,所以非常方便有针对性学习需求的读者进行选择。而全套图书组合在一起所包含的精彩内容之多,也是单本Excel实战技巧精粹》所不能涵盖的。
  内容概要
  本书的内容主要侧重于Excel VBA使用技巧,旨在帮助Excel VBA的初学者和有一定Excel VBA应用基础、希望进阶的读者。同时,本书也是Excel VBA编程技巧的归纳,精选了近300个典型实例,并辅以深入浅出的剖析,力求让更多希望深入掌握Excel VBA技巧的读者取得更大的提高。
  本书的编写目标在于展现以下内容:
  优秀的Excel VBA编程技术;
  简单而有效的Excel VBA基础知识和方法;
  扩展Excel内置功能及补充有效功能的VBA技术;
  打破Excel常规局限的技巧;
  体现或发挥VBA独特优势的技术;
  提高Excel数据处理和分析能力的技巧;
  有效提高工作效率和自动化水平的技巧;
  通常情况下难以实现的功能。
  全书分为8篇,共由279个技巧组成。
  2001年的时候,我是微软全球技术中心的Excel工程师,支持来自亚太500强企业的各类Excel解决方案。从那时开始,我才真正感受到Excel的魅力所在。对于普通用户,Excel足够简单到让用户在很短的时间里做出漂亮的报表。对于专业用户,例如金融领域的数据分析人员,Excel也是无所不能的案头工具。毫不夸张地说,无论你有什么样的桌面数据处理要求,Excel总能找到一种方法满足你对数据/报表处理的要求。
  同时;另一个最常用的Office组件――Word,也是被多数用户埋没了其强大功能的软件。事实上,在Word强大的文字处理与排版功能的帮助下,人们本可以用更短的时间完成更多的文书工作,但许多人仍然经常为了设置一些简单的格式或者生成一份报告的目录而花上大把的时间。
  这套(实战技巧精粹)系列图书,是我见过的最详细的中文Excel/Word技巧集锦。内容以一个个的技巧为主线,实用且覆盖面广,加上Excel Home论坛版主们从无数个真实用户案例得来的宝贵技术经验,真是一套Excel/Word用户不可多得的必备手册。
  本丛书的策划与组织者周庆麟,是中国较早一批的微软全球最有价值专家(MostValuable Professional)获奖者,多次连任中国区Office最有价值专家称号(目前在中国不超过10位)。他持续多年专注于Office方面的研究工作,积极活跃于书籍创作与技术培训,并乐于在Excel Home分享经验技巧,解决用户的实际问题。
  参与丛书写作的多位作者都曾当选过、或者正在担任微软全球最有价值专家,正因为他们共同的努力,以Excel Home为代表的中文技术社区才得以欣欣向荣,让更多的微软产品用户有机会分享彼此的经验。
  我作为微软全球最有价值专家奖项的项目经理,很荣幸能向您推荐这本书,希望它能给您带来全新的Excel应用体验!
  注:微软全球最有价值专家是微软公司授予公司之外,对推广微软技术有特殊贡献专业人士的一个荣誉奖项。这些专业人士积极活跃在技术项目、在线社区、书籍出版、培训、博客等多个领域,乐于分享专业知识并解决大量用户难题。目前全球范围每年有3000多人获此奖项,中国大陆地区仅有200位左右的微软全球最有价值专家获奖者。
  刘志健
  微软全球最有价值专家项目经理
来自ExcelHome多位MVP的集体推荐:
详尽的实例,精彩的讲解,细致的描述,多角度的剖析,融汇ExcelHome万千问题与答案,彰显Excel丰富内涵,相信本书是你爱不释手、轻松办公的利器。
――――――――蔡建忠、陈军、陈流项、陈秀峰、顾斌、黄朝阳、李幼V、盛杰、王建发、郗金甲、杨志宁、周建平、周庆麟、周元平、朱尔轩
  2001年的时候,我是微软全球技术中心的Excel工程师,支持来自亚太500强企业的各类Excel解决方案。从那时开始,我才真正感受到Excel的魅力所在。对于普通用户,Excel足够简单到让用户在很短的时间里做出漂亮的报表。对于专业用户,例如金融领域的数据分析人员,Excel也是无所不能的案头工具。毫不夸张地说,无论你有什么样的桌面数据处理要求,Excel总能找到一种方法满足你对数据/报表处理的要求。
  同时,另一个最常用的Office组件―Word,也是被多数用户埋没了其强大功能的软件。事实上,在Word强大的文字处理与排版功能的帮助下,人们本可以用更短的时间完成更多的文书工作,但许多人仍然经常为了设置一些简单的格式或者生成一份报告的目录而花上大把的时间。
  这套《实战技巧精粹》系列图书,是我见过的最详细的中文Excel/Word技巧集锦。内容以一个个的技巧为主线,实用且覆盖面广,加上ExcelHome论坛版主们从无数个真实用户案例得来的宝贵技术经验,真是一套Excel/Word用户不可多得的必备手册。
  本丛书的策划与组织者周庆麟,是中国较早一批的微软全球最有价值专家(Most ValuableProfessional)获奖者,多次连任中国区Office最有价值专家称号(目前在中国不超过10位)。他持续多年专注于Office方面的研究工作,积极活跃于书籍创作与技术培训,并乐于在ExcelHome分享经验技巧,解决用户的实际问题。
  参与丛书写作的多位作者都曾当选过、或者正在担任微软全球最有价值专家,正因为他们共同的努力,以ExcelHome为代表的中文技术社区才得以欣欣向荣,让更多的微软产品用户有机会分享彼此的经验。
  我作为微软全球最有价值专家奖项的项目经理,很荣幸能向您推荐这本书,希望它能给您带来全新的Excel应用体验!
  注:微软全球最有价值专家是微软公司授予公司之外,对推广微软技术有特殊贡献专业人士的一个荣誉奖项。这些专业人士积极活跃在技术项目、在线社区、书籍出版、培训、博客等多个领域,乐于分享专业知识并解决大量用户难题。目前全球范围每年有3000多人获此奖项,中国大陆地区仅有200位左右的微软全球最有价值专家获奖者。刘志健
  微软全球最有价值专家项目经理
770)this.width=770;' />
同类热销商品¥39.00¥27.30
订单处理配送
北京奥维博世图书发行有限公司 china-pub,All Rights Reserved& WebService建立VBA与Java之间的通信
WebService建立VBA与Java之间的通信
WebService 建立 VBA与Java之间的通信
此通信的目地
以往的用VBA做的客户端登录和导入数据,等对数据库的操作都是在客户端执行,此方法的缺点是:
1. 灵活性差,基本上所有的数据库信息,都写死在程序中,维护起来不灵活,要不断去修改程序。
2. 在客户端(VBA端)暴露了数据库连接的信息,即基本上包括数据库的所有信息,数据库的IP地址,数据库名,密码,对数据库操作的SQL语句等等。虽然在客户端可以对VBA可以进行加密,但是安全性仍然太低,密码很容易被破解。
为了避免以上的缺点:所以采用WebService技术,在客户端(VBA端)通过WebService来连接服务器端(Java端),对登录信息的验证,数据的导入等等。
客户端(VBA)如何部署
1、安装VBA访问WebService的插件: SoapToolkit30,此插件为微软提供:用来在VBA中连接WebService。
2、在客户端VBA编辑器中引用此插件,引用成功后,则以后此客户端都可以通过VBA来连接WebService访问java服务器端
使用范围:具有VBA编程功能的办公自动化软件,例如:Word, Excel等等。引用如图所示:勾选框中的Microsoft Soap Type Library v3.0
3、在客户端调用WebService访问java服务器端:调用代码如下:
其中soapClient.MSSoapInit
为java服务器端发布的网址,即VBA调用java服务器端的类
ImportData 为要访问的类名。
soapClient.getConInformation(username, password) 是调用服务器端的方法
getConInformation 为类名
username,password 为方法中的参数
4、启动服务器,在服务器端发布WebService要调用的java程序
如何发布服务器端的程序,请参考下文,服务器端的部署。
5、在客户端就可以直接访问了。
服务器端的部署(Java端)
1. 下载安装java端连接和发布WebService的中间插件axis-1_4
axis-1_4为开源的中间插件,可以到其官方网站下载最新版本
解压后其中包含:axis的源码,帮助文档,以及要用的中间包
2 部署项目:
将其解压后的目录axis-src-1_4\axis-1_4\webapps\axis 下的所有内容复制到其自己的项目的根目录下,覆盖自己项目中的内容。
如果自己的项目中有和其相同的名字,并且有用,则将自己项目中的
文件改名,或者将其和中间插件中的文件合并在一起。例如:
自己的项目中有文件Web.xml 并且其中的内容有用,不能覆盖,则应将其和axis-src-1_4\axis-1_4\webapps\axis\WEB-INF 下的Web.xml合并,如下图所示:
发布服务器端程序
1、首先编写要提供服务的Java类,例如Hello.java ,类一般放在Src的根目录下,不要放在包下,容易出错
2、 将文件名改为Hello.jws,拷贝到项目的根目录WebRoot\下
3、打开IE访问项目名/Hello.jws 会看到如下画面
4、在点击Click to see the WSDL, 就会看到下面的WSDL信息
看到上面的信息,则说明服务器端程序发布成功,以后调用此类, 则不用再发布,只需启动服务器就行。
4 如果测试后WebService不能发布成功:
则可以加入以下包,将其放在自己项目\lib 下
Mail.jar ,activation,jar tool.jar
Mail.jar ,activation,jar两个包可以在网上下载
tool.jar 包为jdk下面的包。
到此已完成java与VBA的通讯,欢迎大家阅读与分享,分享时请标明原文出处:
除非注明,文章为原创,欢迎转载!转载请注明本文地址,谢谢。
本文地址:
相关日志2013 年 1 月 10 日 -- 2013 年 3 月 28 日 -- 2013 年 4 月 2 日 -- 2013 年 3 月 12 日 -- 2012 年 7 月 17 日 -- 2012 年 8 月 20 日 -- 2012 年 8 月 3 日 -- 2013 年 3 月 12 日 --
- 42,514 views - 29,272 views - 28,020 views - 27,833 views - 18,391 views - 16,470 views - 9,819 views - 9,077 views - 8,034 views - 6,906 views

我要回帖

更多关于 vba http请求 自动化错误 的文章

 

随机推荐