自动创建复选框

时间:2018-07-23 08:15:17

标签: excel vba excel-vba

如果B列中有数据,我想在A列中自动创建一个复选框。(原因是,我有一个庞大的列表,其中包含300多个行,并且随着时间的推移会不断增长,因此该解决方案应该是永久的一个)

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=24.75, Top:=75.75, Width:=12.75, Height:= _
    12.75).Select    

那是我已经创建一个复选框的代码。

我对VBA不太熟悉-我只是在几天前才开始使用Makros。

我应该如何更改它,以便在我将一些文本放入旁边的单元格后自动创建复选框?

编辑:复选框应以数字“ Checkbox x”开头(从1开始)。也无需标题。

1 个答案:

答案 0 :(得分:0)

使用此问题中的一些代码-vba macro to embed OLEobject based on cell

Sub InsertToB()

    Dim cell As Range
    For Each cell In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
         If Not IsEmpty(cell) Then

            Dim ol As OLEObject
            Set ol = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
                                                Link:=False, _
                                                DisplayAsIcon:=True, _
                                                Height:=10)
            With ol
                .Top = cell.Offset(0, 1).Top
                .Left = cell.Offset(0, 1).Left
                .Object.Caption = "Bob"
            End With
        End If
    Next
End Sub
  • 代码在活动工作表中循环并检查A中的单元格是否为空;
  • 然后添加一个复选框;
  • 该复选框的确切位置是通过.Top.Left确定的;

enter image description here