见标题。如何在 Excel 2010 中执行此操作?
4 回答
在 Excel 2007 的“数据”选项卡下,您可以在“数据验证”下找到它。
Excel 中没有内置方法可以生成大量链接到底层单元格的表单复选框。如果您复制单个复选框,它将具有所有相同的属性(包括链接单元格),这意味着您每次都必须手动编辑它。为了一次添加一堆,您必须创建一个 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 编辑器,选择当前工作簿的模块,然后粘贴该代码。如果当前工作簿中没有模块,请右键单击工作簿名称并使用Insert
->New Module
添加一个。
返回您的工作簿并按 Alt-F8 运行宏。如果你运行insertCheckboxes
宏,你会得到以下对话框:
输入您想要复选框的范围(例如,A1:A10)
输入您希望复选框链接到的列(如果您选择 B,这意味着 B 列将显示复选框的TRUE
/FALSE
结果)。
在复选框中输入您想要的标签。如果您只想要该框,请将其留空。
VBA 有几个小问题(例如,它将复选框进入的单元格设置为;;;
使它们不显示任何内容,可能是在您将复选框链接到它们所在的单元格的情况下),但有点创造性工程应该可以解决这个问题。
使用宏后,您可以删除模块——宏只是创建复选框,不需要维护它们。
注意:上面的代码已经在 Excel 2010 中测试并为我工作。您的环境可能会有所不同
我不确定 2010 的界面,在 2003 中你会去验证对话框并添加一个列表检查。
在代码中:
columns(1).validation.add xlValidateList,,,"yes,no"
这将对您有所帮助。这是一个视觉教程。它使用数据验证来形成组合框