ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: dengni

[分享] VBA发送微信消息

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-29 16:40 | 显示全部楼层
lawrencespk 发表于 2018-2-21 23:00
请问楼主看得见吗?

您发微信的问题解决了吗?

TA的精华主题

TA的得分主题

发表于 2018-12-2 15:48 | 显示全部楼层
danielwotcha 发表于 2018-7-10 22:30
http://www.wotcha.net/?p=2572
已修正您代码中的错误,如上。能正常给企业微信通讯录人员发送消息。

这个获取的token是空的

TA的精华主题

TA的得分主题

发表于 2018-12-2 16:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
资料更新中… 发表于 2018-12-2 15:48
这个获取的token是空的

CorpID 和 Secret 有补上吗?

TA的精华主题

TA的得分主题

发表于 2018-12-3 14:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-4 16:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-15 16:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-15 18:33 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-25 14:12 | 显示全部楼层
本帖最后由 dengni 于 2019-2-27 09:55 编辑

企业微信用户的数据库表一直在变更,前面的代码已经用不成了。下面的是重新写了代码,亲测使用正常。
功能是将微信用户数据写入自己的数据库
数据库表各字段名见蓝色字符

公众号请变更Url的连接

Sub GetWxUers()
'获取微信人员
Dim http
Dim MyArr, BtArr
Dim i1 As Integer, i2 As Integer, Str1 As String, Str2 As String, Str3 As String

Set http = CreateObject("MSXML2.ServerXMLHTTP")'token(CorpID, SecretStr0) token函数见一楼
Url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=" & token(CorpID, SecretStr0) & "&department_id=1&fetch_child=1&status=0"
http.Open "Get", Url, False
http.send ""
If http.status = 200 Then
  Str1 = http.responseText
End If
'排除
Str1 = Replace(Str1, """", "")
sql = ""
MyArr = Split(Str1, "},{")
'表字段 自己数据库中表的字段要和企业微信中的字段相同
BtArr = Array("userid", "name", "department", "position", "mobile", "gender", "email", "avatar", "status", "enable", "isleader", "english_name", "hide_mobile", "telephone")
For i1 = 0 To UBound(BtArr)
    Str2 = Str2 & BtArr(i1) & ","
Next i1
Str2 = Left(Str2, Len(Str2) - 1)

For i = 0 To UBound(MyArr)
    For i1 = 0 To UBound(BtArr)
        Select Case BtArr(i1)
               Case "department"
                Str1 = Replace(Split(Split(MyArr(i), BtArr(i1) & ":")(1), "]")(0), "[", "")
               Case Else
                Str1 = Split(Split(MyArr(i), BtArr(i1) & ":")(1), ",")(0)
              End Select
              Str3 = Str3 & "'" & Str1 & "',"
     Next i1
     Str3 = Left(Str3, Len(Str3) - 1)
     sql = sql & " INSERT into [users] (" & Str2 & ") Values (" & Str3 & ");"
     Str3 = ""
Next i

Set ConnWy = Conn("SQL连接")ConnWy.Execute ("delete from [users] ")
ConnWy.Execute (sql)
ConnWy.Close

End Sub



Sub GetWxdepart()
'获取微信部门
Dim http
Dim MyArr, BtArr
Dim i1 As Integer, Str1 As String

Set http = CreateObject("MSXML2.ServerXMLHTTP")
'token(CorpID, SecretStr0) token函数见一楼
Url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" & token(CorpID, SecretStr0)
'
http.Open "Get", Url, False
http.send ""
If http.status = 200 Then
  Str1 = http.responseText
End If

'排除
Str1 = Replace(Str1, """", "")
sql = ""
MyArr = Split(Str1, "},{")
Str1 = ""
'表字段 自己数据表中设字段和企业微信中相同
BtArr = Array("id", "name", "parentid", "order")
For i = 0 To UBound(MyArr)
    For i1 = 0 To UBound(BtArr)
        Str1 = Str1 & "'" & Split(Split(MyArr(i), BtArr(i1) & ":")(1), ",")(0) & "',"
     Next i1
   
     Str1 = Left(Str1, Len(Str1) - 1)
     sql = sql & " INSERT into [departments] (id,name,parentid,[order]) " & " Values (" & Str1 & ");"   
     Str1 = ""
Next i

Set ConnWy = Conn("SQL连接")ConnWy.Execute ("delete from [departments] ")
ConnWy.Execute (sql)
ConnWy.Close

MsgBox "更新成功"

End Sub






TA的精华主题

TA的得分主题

发表于 2019-3-13 14:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-15 11:36 | 显示全部楼层
留名关注,好厉害,学习一下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-29 01:51 , Processed in 0.035234 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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