excel vba

1. excel所需环境支持

1.目前已确定支持excel vba脚本的版本为excel 2016。查看方式,打开excel点击左上角

文件->账户即可查看对应的excel版本。
2.更新自己的excel,需要获得官方部分api支持,详细安装过程科参考HTTP://club.excelhome.net/thread-1384490-1-1.html 。更新后可直接使用getMD5(),QRCode()等函数来测试,部分为网络api,部分会更新到本地提供支持,其中采用的getMD5()函数为本地支持。

2.添加js库支持

1.点击 开始->选项->加载项->转到->将上边的更新函数添加进来。

2.点击菜单栏 开发工具->Visual Basic进入编辑代码界面,点击工具->引用找到Microsoft Script Control 1.0打上对勾 点击确定。

3.开始编写自己的function或者sub

实例:http请求返回值处理

'用户登录的函数,返回uToken
Function loginToken(path As String, uId As String, pwd As String) As String
    Dim HttpReq As Object
    Dim strURL, strRLT
    '  组装为一个完整的请求路径
    strURL = path & "/login.action"
    Set HttpReq = CreateObject("Msxml2.XMLHTTP")
    
    HttpReq.Open "POST", strURL, False '设置为异步请求True
    HttpReq.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"  '可设置代理,一般做爬虫会这样处理
        '设置请求头与数据格式编码等    
    HttpReq.setRequestHeader "CONTENT-TYPE", "application/json;charset=UTF-8"
    Dim data As String
    Dim password As String
        '调用excel单元格函数    
    password = Evaluate("=GetMD5(""" & pwd & """)")
    data = "{""uId"":""" & uId & """,""pwd"":""" & password & """}"
    Rem MsgBox (data)
    HttpReq.send data
        '出现乱码时使用下边注释的代码解决乱码问题
    Rem strRLT = StrConv(HttpReq.responsebody, vbUnicode, &H804)
    Set xc = CreateObject("ScriptControl"): xc.Language = "JScript"
    Set ye = xc.Eval("eval(" & HttpReq.responseText & ")")
    loginToken = ye.result
End Function

总结:excel中的vba的编写所需的特殊对象需要依赖于c++提供的dll支持,对于json等处理可采用

New MSScriptControl.ScriptControl对象来进行json的解析与组装,其字符串拼接可采用+或者&来完成。对于Object的对象需要采用set来进行赋值,无返回值的函数采用call来进行调用。例如Dictionary类(java中的map,python中的Dict),对于复杂的excel操作我们可以通过录制宏来完成,方便与我们日常办公的需求可编写对应的function 或者sub来提高工作效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值