如图,在我们的A列有一列手机号,现在我们需要给该手机号分别创建一个二维码。这样的操作如果是手动操作还是很麻烦的,特别是数据很多的情况下,那么我们如何使用VBA进行批量操作呢?
实现源码:
Sub 创建二维码()
Dim sht As Worksheet, rng As Range
Set sht = ActiveSheet
Set rng = sht.Range("A1").CurrentRegion
For i = 1 To rng.Rows.Count
With sht.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1")
.Object.Style = 11
.Top = Range("B" & i).Top
.Left = Range("B" & i).Left
.Width = Range("B" & i).Width
.Height = Range("B" & i).Height
.LinkedCell = Range("A" & i).Address
End With
Next i
End Sub
第4行:将数据赋值给变量
第5行:循环数据行
第6行:创建二维码对象
第7行:将style属性设置为11(代表二维码)
第8-11行:设置二维码对象的大小和位置
第12行:设置链接单元格
如不需链接单元格,第12行也可修改为如下代码:
.Object.Value = Range("A" & i).value
运行代码后效果:
注意:如果该代码运行报错,可能是因为你的OFFICE中没有BARCODE.BarCodeCtrl.1对象,可以试试手动找到Microsoft BarCode Control 16.0这个控件,如果找不到,则可能是没有安装Access,可去找一个OFFICE2021专业版重新安装一下。