Visual Basic Excel在代码中创buildcheckbox

我为Excel文件添加了一个button,点击后,它将读取文本文件,并使用文本文件中的行填充列。 我需要添加一个checkbox到某些行旁边的单元格,具体取决于行所包含的内容。

我可以在代码中创build类似checkbox的组件吗?如果是这样的话,怎么样?

任何反应表示赞赏。

虽然@Siva提供的链接当然是有效的,但我只是希望在StackOverflow上有一个答案,而不是外部链接。 因此,这里是您可能要寻找的解决scheme:

Option Explicit Public Sub tmpSO() Dim i As Long Dim chk As CheckBox With ThisWorkbook.Worksheets(1) .CheckBoxes.Delete For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(i, "A").Value2 = "need checkbox" Then Set chk = .CheckBoxes.Add(Left:=.Cells(i, "B").Left, Top:=.Cells(i, "B").Top, Width:=.Cells(i, "B").Width, Height:=10) chk.OnAction = "runThisSub" chk.Name = "CheckBowInRow" & i chk.Caption = "CheckBowInRow" & i End If Next i End With End Sub 

 Sub runThisSub() MsgBox "You clicked the checkbox " & Application.Caller _ & Chr(10) & "in cell " & ThisWorkbook.Worksheets(1).CheckBoxes(Application.Caller).TopLeftCell.Address End Sub 

将两个子文件复制到您的Excel文件中,并在第一个子文件中进行更改

  1. 将文本导入到的Worksheet(1)这里是Worksheet(1) ),
  2. 可以find条件的列(这里是A列),还有
  3. 条件是什么(这里A列中的值必须是need checkbox )。

代码现在将查看Worksheet(1)中列A中的所有单元格,并检查是否need checkbox 。 如果是这样,代码会自动添加一个checkbox到该单元格附近的列B

如果你点击任何一个新创build的checkbox,那么第二个子节点就会启动,并将在消息框中显示你已经点击了哪一行的checkbox。