我已经在Excel文件中添加了一个按钮,当单击该文件时,该文件会读取文本文件并使用文本文件中的行填充列。我需要在与某些行相邻的单元格中添加一个复选框,具体取决于该行所包含的内容。
我可以在代码中创建类似复选框的组件,如果是,那么如何?
任何回复都表示赞赏。
答案 0 :(得分: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
将两个潜艇复制到Module
到您的Excel文件中并更改第一个子
Worksheet(1)
),A
列),以及A
列中的值必须为need checkbox
)。现在,代码将查看工作表A
中列Worksheet(1)
中的所有单元格,并检查该值是否为need checkbox
。如果是这样,代码会自动将复选框添加到该单元格旁边的列B
中。
如果您点击任何新创建的复选框,则第二个子会启动,并会在消息框中显示您已单击哪一行的复选框。