Excel自帶控件批量生成條形碼或二維碼
▎具體需求
根據(jù)A列信息,批量生成二維碼或者條形碼。

▎思路分析
我們這里使用Excel自帶的二維碼條形碼控件搭配VBA,實現(xiàn)批量生成的效果。
▎具體步驟
①由于二維碼控件不是默認控件,需要單獨找到添加。我們在開發(fā)工具中,找插入控件,選擇【其他控件】 。

②找到我們需要的二維碼條形碼控件。點擊,添加到表格中。繪制控件的時候,位置可以隨意放置,因為后面批量生成的時候,代碼還會對控件的位置重新布置。


③將以下代碼放到模塊中。
注意:生成二維碼和條形碼使用的都是這一個控件,只是通過其中一個參數(shù)Object.Style ,來控制生成的樣式。
Sub 批量生成二維碼()Dim k As Long, i As LongCall 清除k = ActiveSheet.Range("A65536").End(xlUp).RowFor i = 1 To kWith ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1") '新增控件'控件的屬性.Left = ActiveSheet.Cells(i, 1).Width + 2.Top = ActiveSheet.Cells(i, 1).Top + 2.Width = 50.Height = 50'鏈接的參數(shù)單元格.Object.Style = 11 '二維碼.Object.ShowData = 1.LinkedCell = "A" & iEnd WithNextEnd SubSub 批量生成條形碼()Dim k As Long, i As LongCall 清除k = ActiveSheet.Range("A65536").End(xlUp).RowFor i = 1 To kWith 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'鏈接的參數(shù)單元格.Object.Style = 7 '條碼.Object.ShowData = 1.LinkedCell = "A" & iEnd WithNextEnd SubSub 清除()Dim pic As ShapeWith Sheet1For Each pic In .ShapesIf pic.Type = 12 Then pic.Delete '刪除sheet1中所有二維碼圖片Next picEnd WithEnd SubSub 導出二維碼條形碼()Dim ad$, m&, mc$, shp As ShapeDim nm$, n&, myFolder$n = 0myFolder = ThisWorkbook.Path & "\二維碼圖片\" '指定文件夾名稱For Each shp In ActiveSheet.ShapesIf shp.Type = 12 ThenIf Len(Dir(myFolder, vbDirectory)) = 0 ThenMkDir myFolderEnd Ifn = n + 1m = shp.TopLeftCell.Rowmc = Cells(m, 1)' If code_name = "" Thennm = mc & ".jpg" '圖形對象的名字' Else' nm = ActiveSheet.Cells(m, code_name) & ".jpg"' End Ifshp.CopyPicture '將圖形對象復制到剪切板With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart '在工作表中添加一個圖表對象.Parent.Select.Paste '代碼將剪切板中的圖形對象以圖片的格式粘貼到新添加的圖表中.Export myFolder & nm.Parent.Delete '刪除工作表中添加的圖表對象End WithEnd IfNextEnd Sub
▎效果
批量生成二維碼或條形碼

導出二維碼或條形碼

評論
圖片
表情
