以编程方式将单元格格式化为checkbox

我正在开发一个Excel插件,它将在构build工作簿之前从Web服务中获取数据。

在示例工作簿中,我已经给出了一些单元格为1或空的要求。 这些是SUM MED,结果存储在其他地方。

我不特别喜欢这个,我试图想办法使用checkbox的这些领域,但仍然保持单元格值为1或0(为选中和未选中)。

这给了我几个问题:

  1. 可以添加和configuration一个checkbox,以便检查它给出值1并取消选中它给关联单元格0?
  2. 这可以通过一个Excel插件程序来完成吗?

使用我广泛的研究能力(谷歌),我发现我可以添加一个checkbox,并将其与单元格关联,以便检查/取消选中单元格值设置为TRUEFALSE 。 如果这是唯一的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将切换检查。

因为它是工作表代码,所以安装和自动使用非常简单:

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

如果您有任何疑问,请先在试用工作表上尝试。

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. 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必须启用这个工作!

注意:

可以使用标准的左键单击来实现一个事件,但它是更多的代码。