【问题标题】:Visual Basic Excel create Checkbox in CodeVisual Basic Excel 在代码中创建复选框
【发布时间】:2016-08-23 19:58:08
【问题描述】:

我在 Excel 文件中添加了一个按钮,单击该按钮时,将读取文本文件并使用文本文件中的行填充一列。我需要在与某些行相邻的单元格中添加一个复选框,具体取决于该行包含的内容。

我可以在代码中创建像复选框这样的组件吗?如果可以,如何创建?

感谢任何回复。

【问题讨论】:

标签: excel vba


【解决方案1】:

虽然@Siva 提供的链接肯定有效,但我只是更喜欢在 StackOverflow 上获得答案,而不是外部链接。因此,这是您可能正在寻找的解决方案:

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

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

  1. 文本导入到的工作表(这里是Worksheet(1)),
  2. 可以找到条件的列(此处为列A),以及
  3. 条件是什么(这里A列中的值必须是need checkbox)。

代码现在将查看工作表Worksheet(1)A 列中的所有单元格,并检查值是否为need checkbox。如果是这样,代码将自动在与该单元格相邻的列B 中添加一个复选框。

如果您单击任何新创建的复选框,则第二个子程序会启动,并会在消息框中显示您单击了哪一行中的哪个复选框。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
相关资源
最近更新 更多