|
Sub 批量插入复选框()
Dim RG As Range
Dim S As Shape
For Each S In ActiveSheet.Shapes '首先删除原来的check符号
If InStr(S.Name, "Ch") > 0 Then '判断图形是否包含ch,如果包含就代表是复选框,然后就删除原来的,其他的不删除
S.Delete
End If
Next S
For Each RG In Range("B2:B15")
ActiveSheet.CheckBoxes.Add(RG.Left, RG.Top + 5, RG.Width - 20, RG.Height - 20).Select
With Selection
.Characters.Text = "是" '编辑复选框的文字内容
.Value = xlOff
.LinkedCell = RG.Address
End With
Next RG
End Sub
问题1:If InStr(S.Name, "Ch") > 0 Then S.Delete 这句话到底什么意思. 为什么我运行后就把所有的复选框先全部删除掉了?
不是应该只把大有check选项的复选框删除掉吗?请高手解释一下?
问题2: .Value = xlOff 什么意思?在图形中显示什么属性? .LinkedCell = RG.Address 实在搞不明白意思?只是在excel文件表格中看到true/false。听视频的讲解也不太明白?
- Sub 批量插入复选框()
- Dim RG As Range
- Dim S As Shape
- For Each S In ActiveSheet.Shapes
- If InStr(S.Name, "Ch") > 0 Then
- S.Delete
- End If
- Next S
- For Each RG In Range("B2:B15")
- ActiveSheet.CheckBoxes.Add(RG.Left, RG.Top + 5, RG.Width - 20, RG.Height - 20).Select
- With Selection
- .Characters.Text = "是"
- .Value = xlOff
- .LinkedCell = RG.Offset(, 1).Address
- End With
- Next RG
- End Sub
复制代码你执行这段后,链接单元格就改到C列对应的行。
你可以勾选复选框看C列所在行的单元格,值是否会变化。另外更改C列的值,再看看B列所在行的复选框的状态。
|
|