ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 二维码自动生成(QRcode)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2020-12-17 18:50 | 显示全部楼层 |阅读模式
本帖最后由 wodewan 于 2020-12-22 19:26 编辑

1. EXCEL内二维码生成,非网络调用
2. 支持中、英文、数字混编
3. 可更改二维码及背景颜色
4. 可复制至剪切板调用(默认关闭),图片格式。
5. 可设置容错级别
6. 和上次的MDE、AES加密原理上大致相同,QRcode的JS源码在窗体标签中,可用手机扫描测试,供有兴趣的参考。。。。。。

补充内容 (2022-7-5 17:45):
本贴的批量功能由于系统和Excel以及IE版本的某些原因会出现空白图片问题,不再更新,有兴趣可以移步这个帖子,功能更全,无上述问题:https://club.excelhome.net/thread-1578198-1-1.html
1.gif

qrcode-批量生成.rar

51.02 KB, 下载次数: 1280

评分

14

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-12-17 23:04 | 显示全部楼层
生成的二维码最好直接插入到表格中,省的还要粘贴一次。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-12-18 08:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果  内容能带格式更实用,谢谢分享

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-12-18 09:09 | 显示全部楼层
本帖最后由 龍膽草 于 2020-12-18 09:13 编辑

厉害!我没这么做过,我一般都是偷懒用ZXing插件直接生成。代码看不懂,老师要是能开帖讲讲具体怎么做的就好了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-18 10:42 | 显示全部楼层
龍膽草 发表于 2020-12-18 09:09
厉害!我没这么做过,我一般都是偷懒用ZXing插件直接生成。代码看不懂,老师要是能开帖讲讲具体怎么做的就 ...

哈哈,开贴就没必要了,当初的目的是想在正常系统环境和无须额外插件的情况下,VBA调用其他语言的第三方库。没到写教程的那个段位,简单说说一些思路和大纲,供有兴趣的参考吧,有错误得地方还请指正:

一、QRcode库
  • JS的第三库还是比较多的,特别是网络方面,调用方式也都比较简单,基本上都是封装好的,直接拿来就用,关键基本上都是开源的。
  • 这个QRcode就是其中之一,其实它的功能很强大,这里只是调用了最基础的生成二维码的功能,包括解析,生成带loge的二维码等等都是可以的


二、VBA的调用方式
  • 一种使用ScriptControl,但兼容64位比较麻烦,需额外处理。
  • 使用使用html来实现,每台电脑都有,没有上述的问题。



三、VBA的执行函数
  • eval
  • execscript
  • 两者函数的执行方式基本差不多,但有区别



四、一些细节
  • 在创建好了html对象后,可通过html引入src标签然后执行相关JS语句,简单,但需要联网,也可以将JS代码复制出来放入EXCEL中的某个地方(如标签,单元格等),本地执行,在VBA代码中拼接字符串是个比较麻烦的事情,除了一些简单的代码。
  • VBA创建的HTML对象,包括执行的window基本上都是依赖于IE8的,这里面坑就比较多了,所以要找到对应的JS版本,或者有时还需做一些修改或引入一些其他的JS库来支持执行。
  • 简单说下这个文件的过程,将QRcode的JS代码复制到窗体的Lable标签中,通过窗体的Web控件的Doucument.Parentwindow的Execscript方法执行标签中的JS代码加载这个库,然后通过像Web控件的Document中写入对应的Div标签,再调用QRcode的相关方法生成二维码,在Web控件中显示,最后通过ExecWB方法将二维码从WEB控件中提取出来。
  • 另外说明一下,QRcode生成有两种方式,IE10下只支持Table方式,要转换成图片格式,比较麻烦,IE8各种不支持,所以绕了一圈将Table格式先放到了EXCEL中的一个隐藏文件中,然后再通过copypicture方法获得图片,这里是放到了剪切板,当然也可以生成文件或嵌入到单元格,只是实现方式不同而已。

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-12-18 11:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-12-18 11:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-12-22 09:59 | 显示全部楼层
wodewan 发表于 2020-12-18 10:42
哈哈,开贴就没必要了,当初的目的是想在正常系统环境和无须额外插件的情况下,VBA调用其他语言的第三方 ...

谢谢老师的无私分享,留个记号慢慢理解。

TA的精华主题

TA的得分主题

发表于 2020-12-22 12:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好例子!如果能够批量生成二维码,并且对应到相关单元格更好。谢谢分享

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-22 19:03 | 显示全部楼层
YANWEI82123300 发表于 2020-12-22 12:09
好例子!如果能够批量生成二维码,并且对应到相关单元格更好。谢谢分享

可批量,可指定单元格,可设置图片大小,单元格自适应图片大小,按钮放到上面的customer UI里,这样各个sheet都可以方便调用。
其实就是加个循环和一些单元格和图片设置,1楼附件已更新,供参考。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 08:18 , Processed in 0.038204 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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