将包含true / false的Excel单元转换为VBA中的checkbox
我在excel单元格中有一个“True”或“false”作为文本的列。
该列由VBA代码填充。
我需要显示一个checkbox作为选中,而不是真正的,checkbox未选中,而不是False。
这可以从VBA代码完成吗? 假设包含该值的单元格被认为是
ActiveWorkBook.Sheets(“mySheetName”)。cells(i,4)
我=行索引,这是在一个循环内。
这个代码应该做这个工作,只要根据你的需要改变For循环:
Sub subPlaceCheckbox() Const cDblCheckboxWidth As Double = 15 Const cStrCheckboxPrefix As String =“cb4_” Dim cb As CheckBox 昏暗的范围 昏暗我只要 Application.ScreenUpdating = False 首先,删除所有旧的checkbox,以避免双打 对于每个cb在Sheet1.CheckBoxes中 如果左(cb.Name,Len(cStrCheckboxPrefix))= _ cStrCheckboxPrefix然后 cb.Delete 万一 下一个 对于i = 1到20 设置rng = Sheet1.Cells(i,4) '放置checkbox 设置cb = Sheet1.CheckBoxes.Add(_ rng.Left + rng.Width / 2 - cDblCheckboxWidth / 2,_ rng.Top,cDblCheckboxWidth,rng.Height) '设置checkbox属性 用cb .Name =“cb_”&rng.Address(False,False) .Value = rng.Value .LinkedCell = rng.Address .Display3DShading = True .Characters.Text =“” 结束 '隐藏单元格的内容 rng.NumberFormat =“;;;” 接下来我 Application.ScreenUpdating = True 结束小组
您可以将单元格保持为TRUE或FALSE,将checkbox添加到工作表,并将checkbox上的LinkedCell设置为您的原始单元格。 如果您不想查看单元格,请将checkbox放在顶部!