以编程方式将单元格格式化为checkbox
我正在开发一个Excel插件,它将在构build工作簿之前从Web服务中获取数据。
在示例工作簿中,我已经给出了一些单元格为1或空的要求。 这些是SUM
MED,结果存储在其他地方。
我不特别喜欢这个,我试图想办法使用checkbox的这些领域,但仍然保持单元格值为1或0(为选中和未选中)。
这给了我几个问题:
- 可以添加和configuration一个checkbox,以便检查它给出值1并取消选中它给关联单元格0?
- 这可以通过一个Excel插件程序来完成吗?
使用我广泛的研究能力(谷歌),我发现我可以添加一个checkbox,并将其与单元格关联,以便检查/取消选中单元格值设置为TRUE
或FALSE
。 如果这是唯一的select,我可以处理它(叹!),但这可以从一个加载中的C#代码完成?
这是一个使用单元格B9的示例
它是使用双击而不是单击来实现的
在工作表代码区域中input以下事件macros:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim B9 As Range Set B9 = Range("B9") If Intersect(B9, Target) Is Nothing Then Exit Sub B9.Font.Name = "Marlett" Cancel = True If B9.Value = 1 Then B9.Value = 0 B9.NumberFormat = ";;;" Else B9.Value = 1 B9.NumberFormat = Chr(34) & "a" & Chr(34) & ";;;" End If End Sub
双击B9将切换检查。
因为它是工作表代码,所以安装和自动使用非常简单:
- 右键单击Excel窗口底部附近的选项卡名称
- select查看代码 – 这会popup一个VBE窗口
- 粘贴东西,closuresVBE窗口
如果您有任何疑问,请先在试用工作表上尝试。
如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除macros:
- 调出上面的VBE窗口
- 清除代码
- closuresVBE窗口
要了解有关macros的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件macros(工作表代码)的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/event.htm
macros必须启用这个工作!
注意:
可以使用标准的左键单击来实现一个事件,但它是更多的代码。