Private Sub CommandButton1_Click()
'Call 清除
Dim k As Long, i As Long
k = ActiveSheet.Range("C65536").End(xlUp).Row 'C65536需要生成二维码数据的列,比如机型号
For i = 3 To k '3 to k 指从第几行开始生成,比如第三行开始
With ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1") '新增控件 '控件的属性
' .Left = ActiveSheet.Cells(i, 1).Width + 2
' .Top = ActiveSheet.Cells(i, 1).Top + 2
.Left = Range("A" & i).Left + 2
.Top = Range("A" & i).Top + 2
.Width = 70
.Height = 70 '链接的参数单元格
.Object.Style = 11 '二维码
.Object.ShowData = 1
.LinkedCell = "C" & i 'C是按照上面设定的开始,比如 C3,如果上面是D65536,这里的C就改为D。
End With
Next
End Sub
Sub CommandButton2_Click()
Dim dd As Object
With ActiveSheet
For Each dd In OLEObjects
If VBA.UCase(VBA.Left(dd.Name, 7)) = "BARCODE" Then dd.Delete '删除含有BARCODE字符的控件
Next dd
End With
End Sub
代码也抄的其它家的,也改造了下。清除的只有barcode字样的控件。其它控件不删除。如果删除其它控件,就改shape,标识改为12.