我在 Excel 单元格中有一个列,其中包含“True”或“false”作为文本。
该列由 VBA 代码填充。
我需要将复选框显示为选中而不是 True,并显示一个未选中的复选框而不是 False。
这可以通过 VBA 代码完成吗?假设包含该值的单元格被称为
ActiveWorkBook.Sheets("mySheetName").cells(i, 4)
i = 行索引,位于循环内。
这段代码应该可以完成这项工作,只需根据您的需要更改 For 循环:
子 subPlaceCheckbox()
常量 cDblCheckboxWidth As Double = 15
常量 cStrCheckboxPrefix As String = "cb4_"
将 cb 调暗为复选框
调暗为范围
暗淡我只要
Application.ScreenUpdating = False
'首先,删除所有旧的复选框以避免双打
对于 Sheet1.CheckBoxes 中的每个 cb
If Left(cb.Name, Len(cStrCheckboxPrefix)) = _
cStrCheckboxPrefix 然后
cb.删除
万一
下一个
对于 i = 1 到 20
设置 rng = Sheet1.Cells(i, 4)
'放置复选框
设置 cb = Sheet1.CheckBoxes.Add(_
rng.Left + rng.Width / 2 - cDblCheckboxWidth / 2, _
rng.Top, cDblCheckboxWidth, rng.Height)
'设置复选框属性
带cb
.Name = "cb_" & rng.Address(假,假)
.Value = rng.Value
.LinkedCell = rng.Address
.Display3DShading = 真
.Characters.Text = ""
结束于
'隐藏单元格内容
rng.NumberFormat = ";;;"
接下来我
Application.ScreenUpdating = True
结束子
您可以只让单元格显示 TRUE 或 FALSE,将复选框添加到您的工作表中,然后将复选框上的 LinkedCell 设置为您的原始单元格。如果您不想看到该单元格,请将复选框放在其顶部!