【VBA】自动填充序号

使用Excle自带的工具栏图标填充

填充效果图如下:

【VBA】自动填充序号

代码如下:

Sub 自动填充序号()
    Dim A As CommandBar '代表容器应用程序中的一个命令栏
    Dim B As CommandBarControl '代表一个命令栏控件
    Dim i As Long
    Cells.Clear '清除所有单元格
    For Each myshape In Worksheets(1).Shapes
        If myshape.Name <> "myButton" Then
            myshape.Delete '删除名字不为myButton的图形对象
        End If
    Next
    On Error Resume Next
    Application.CommandBar("FaceID").Delete
    On Error GoTo 0
    '创建以个自定义的工具栏FaceID
    Set A = Application.CommandBars.Add(Name:="FaceID")
    Set B = A.Controls.Add(Type:=1)
    For i = 1 To 30
    B.FaceId = i
    B.CopyFace '复制命令按钮的Icon
    Cells(1, 1).Select
    With Worksheets(1)
        .Paste '将复制的命令粘贴到Icon
        .Shapes(.Shapes.Count).Top = .Cells(i, 2).Top
        .Shapes(.Shapes.Count).Left = .Cells(i, 2).Left
        .Cells(i, 1).Value = i
        End With
    Next i
    A.Delete '删除临时的自定义工具栏FaceID
    Set B = Nothing
End Sub

注意事项:在本代码中出现的“myButton”指的是Excle中的按钮,修改按钮名称如下图:

 

【VBA】自动填充序号

 

附件下载