如何向Excel 2010中的一列中的每个单元添加是/否combobox
看标题。 我怎样才能在Excel 2010中做到这一点?
我不确定2010年的界面,在2003年你会去validation对话框,并添加一个列表检查。
在代码将是:
columns(1).validation.add xlValidateList,,,"yes,no"
在“数据”选项卡下的Excel 2007中,可以在“数据validation”下find它。
在Excel中没有内置的方法来生成链接到底层单元格的“表单”checkbox。 如果您复制一个checkbox,它将具有所有相同的属性(包括链接的单元格),这意味着您将不得不每次都手动进行编辑。 为了一次添加一堆,你必须创build一个VBA函数来为你做。
谢天谢地, 比我更聪明的人已经做到了。 这是一个这样的例子代码:
Option Explicit Sub insertCheckboxes() Dim myBox As CheckBox Dim myCell As Range Dim cellRange As String Dim cboxLabel As String Dim linkedColumn As String cellRange = InputBox(Prompt:="Cell Range", _ Title:="Cell Range") linkedColumn = InputBox(Prompt:="Linked Column", _ Title:="Linked Column") cboxLabel = InputBox(Prompt:="Checkbox Label", _ Title:="Checkbox Label") With ActiveSheet For Each myCell In .Range(cellRange).Cells With myCell Set myBox = .Parent.CheckBoxes.Add(Top:=.Top, _ Width:=.Width, Left:=.Left, Height:=.Height) With myBox .LinkedCell = linkedColumn & myCell.Row .Caption = cboxLabel .Name = "checkbox_" & myCell.Address(0, 0) End With .NumberFormat = ";;;" End With Next myCell End With End Sub
您应该将其复制到VBA模块中。 按Alt + F11打开VBA编辑器,select当前工作簿的模块并粘贴该代码。如果当前工作簿中没有模块,请右键单击工作簿名称,然后使用“ Insert
– >“ New Module
添加一个New Module
。
返回到您的工作簿并按Alt-F8运行一个macros。 如果您运行insertCheckboxes
macros,您将得到以下对话框:
input您想要的范围checkbox(例如,A1:A10)
input您希望checkbox被链接到的列(如果您selectB,则表示列B将显示checkbox的TRUE
/ FALSE
结果)。
在checkbox中input你想要的标签。 如果你只想要这个盒子,把它留空。
VBA有几个小问题(例如,它将checkbox的单元格设置为;;;
使它们不显示任何内容,可能用于将checkbox链接到它们所在的单元格的情况)一点创意工程应该让你在附近。
使用macros之后,可以删除模块 – macros只是创buildcheckbox,不需要维护它们。
注意:上面的代码已经在Excel 2010中进行了testing和工作。 你的环境可能有所不同
这将帮助你。 这是一个视觉教程。 它使用数据validation来形成combobox