我在 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 设置为您的原始单元格。如果您不想看到该单元格,请将复选框放在其顶部!