使用OFFICE自带控件在EXCEL中批量插入二维码以及条码

经常在工作中我们需要在电子表格中插入二维码或者条码,在office早期直接下载条码字体就能解决问题,而在以后版本中需要 Microsoft BarCode Control (根据office版本不同有不同的版本)一般office的专业版都带有这个控件,如果没有可以自己下载安装。如果安装完成后可以按照以下的步骤完成条码或者二维码的批量生成。

1 如果生成单个二维码,按照下图打开开发工具菜单

再按照下图选择控件Microsoft BarCode Control 直接插入到相应的单元格,设置属性可以设置关联单元格或Value就可以生成二维码,可以通过修改属性,产生不同的编码。根据以往经验像批量生成二维码,将单元格向下拖拽时发现生成的二维码都是相同的值,说明对于控件而言这种简单的办法是没有办法批量生成二维码。

2批量生成二维码这时就需要借助VBA代码实现批量生成二维码

   2.1第一步先在单元格中插入一个二维码不做任何设置

  2.2将以下代码先拷贝到电子表格的VBA编辑器中

  2.3再到开发工具中插入表单控件《按钮》选择与批量生成二维码函数关联,就可以再第二列生成第一列的二维码,如果有兴趣可将以下每个函数关联一个按钮,方便使用。二维码的大小可以修改以下函数中属性。以下的代码有注释,可以方便的根据自己需求进行修改。

Sub 清除()
 Dim pic As Shape
 With Sheet1
    For Each pic In .Shapes
    If pic.Type = 12 Then pic.Delete  '删除sheet1中所有二维码图片'
    Next pic
    End With
End Sub

Sub 批量生成二维码()
Dim k As Long, i As Long
Call 清除
k = ActiveSheet.Range("A65536").End(xlUp).Row
 For i = 1 To k
   With ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1")    '新增控件            '控件的属性
         .Left = ActiveSheet.Cells(i, 1).Width + 2
         .Top = ActiveSheet.Cells(i, 1).Top + 2
         .Width = 70
         .Height = 70            '链接的参数单元格
         .Object.Style = 11 '二维码
         .Object.ShowData = 1
         .LinkedCell = "A" & i
       End With
      Next
End Sub
Sub 批量生成条形码()
Dim k As Long, i As Long
   Call 清除
   k = ActiveSheet.Range("A65536").End(xlUp).Row
      For i = 1 To k
          With ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1") '新增控件            控件的属性'
              .Left = ActiveSheet.Cells(i, 1).Width + 2
              .Top = ActiveSheet.Cells(i, 1).Top + 2
              .Width = 150
              .Height = 50             '链接的参数单元格’
              .Object.Style = 7
              .Object.ShowData = 1
              .LinkedCell = "A" & i
              End With
       Next
End Sub
Sub 导出二维码条形码()
  Dim ad$, m&, mc$, shp As Shape
  Dim nm$, n&, myFolder$
    n = 0
  myFolder = ThisWorkbook.Path & "\二维码图片\"       '指定文件夹名称
  For Each shp In ActiveSheet.Shapes
     If shp.Type = 12 Then
         If Len(Dir(myFolder, vbDirectory)) = 0 Then
             MkDir myFolder
         End If
               n = n + 1
               m = shp.TopLeftCell.Row
               mc = Cells(m, 1) '
              If code_name = "" Then
                       nm = mc & ".jpg"  '图形对象的名字'
                       Else
                         nm = ActiveSheet.Cells(m, code_name) & ".jpg"
                       End If
                      shp.CopyPicture '将图形对象复制到剪切板'
                         With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart  '在工作表中添加一个图表对象 '
                          .Parent.Select
                          .Paste           '代码将剪切板中的图形对象以图片的格式粘贴到新添加的图表中
                          .Export myFolder & nm
                          .Parent.Delete        '删除工作表中添加的图表对象'
                       End With
                  End If
              Next
End Sub
 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
经验证,可于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表格生成二维码了,根据实际情况,在填写相关数据后,执行上面的语句就可以了,其他的工作该咋的就咋的吧。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值