QRMaker生成二维码,支持中文

QRMaker如果想支持中文,可以将中文转为UTF8,然后用InputDateB直接传入Byte()

Option Explicit
  
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long
Private Const CP_UTF8 = 65001
  
Public Function UTF8_Encode(ByVal strUnicode As String) As Byte()
'UTF-8 编码
  
    Dim TLen As Long
    Dim lngBufferSize As Long
    Dim lngResult As Long
    Dim bytUtf8() As Byte
      
    TLen = Len(strUnicode)
    If TLen = 0 Then Exit Function
      
    lngBufferSize = TLen * 3 + 1
    ReDim bytUtf8(lngBufferSize - 1)
      
    lngResult = WideCharToMultiByte(CP_UTF8, 0, StrPtr(strUnicode), TLen, bytUtf8(0), lngBufferSize, vbNullString, 0)
      
    If lngResult <> 0 Then
        lngResult = lngResult - 1
        ReDim Preserve bytUtf8(lngResult)
    End If
      
    UTF8_Encode = bytUtf8
End Function

Private Sub Command1_Click()
On Error GoTo Err_Exit
    
With QRmaker1
    .ModelNo = 2
    .CellPitch = 5
    .CellUnit = 203
    .QuietZone = 0
    .InputDataB = UTF8_Encode(Text1.Text) '转为UTF8编码输入可以处理中文
    .Refresh
End With

Exit Sub
Err_Exit:
    'Err.Raise Err.Number, Err.Source, Err.Description
    MsgBox Err.Number & "|" & Err.Source & "|" & Err.Description
End Sub

  

转载于:https://www.cnblogs.com/dotqi/p/5095136.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经验证,可于EXCEL的VBA中使用的二维码(QRMAKER)控件 、VBA中调用QRmaker 由于VBA的窗体环境和VB中的差不多,所以在VBA窗体中调用QRmaker就不再描述,这里主要说明一下如何在表格中引用QRmaker。 第一步:单击Office按钮,在Excel选项中开启“开发工具”项,从而让“开发工具”选项卡显示出来。 第二步,插入→其他控件,选择QRmaker。 然后就是在合适的地方绘出QRmaker控件,这时会自动进入“设计模式”,单击“属性”可以展开控件的“属性”栏,可根据需要设置相关属性,和VB中的操作雷同。 接下来与VB中不一样的地方就是如何在VBA代码中引用QRmaker控件了,这点和VB中有点小区别。 添加“模块”,添加“过程”,输入代码。 Public Sub QRCodeTest() '定义QRString变量,存储要生成二维码的字符串 Dim QRString As String '给QRString赋值,根据实际情况赋值 QRString = Sheet1.Range("E14") & Sheet1.Range("F14") & ";" & Sheet1.Range("E15") & Sheet1.Range("F15") & ";" & Sheet1.Range("E16") & Sheet1.Range("F16") & "_" & Sheet1.Range("G16") & "_" & Sheet1.Range("F17") & "_" & Sheet1.Range("G17") Sheet1.Select '设置QRmaker的AutoRedraw属性为ArOn Sheet1.QRmaker1.AutoRedraw = ArOn '将字符串传递给QRmaker控件 Sheet1.QRmaker1.InputData = QRString '刷新QRmaker的内容,如果AutoRedraw属性为On,则无需此句 'Sheet1.QRmaker1.Refresh End Sub 然后就可以在Excel表格中生成二维码了,根据实际情况,在填写相关数据后,执行上面的语句就可以了,其他的工作该咋的就咋的吧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值