向单元格添加下拉列表并包含其初始值

向单元格添加下拉列表并包含其初始值

我想向单元格 A1(其值为 2)添加一个下拉列表,该下拉列表包含多个项目(“猫”、“狗”、“奶酪猴子”)这很容易。

但是,我想动态地将初始单元格的值 (2) 作为列表的一部分包含进来。因此它应该如下所示:

2
cats
dogs
cheese monkeys

顶部值 (2) 需要轻松更改(像普通单元格一样)并且还包含其他(非动态)状态。

这需要在电子表格上不添加额外的“幽灵”(隐藏)参考单元格的情况下完成。这也需要在不使用 VBA/宏的情况下完成,因为文件需要是 .XLSX。这种普通单元格/下拉列表混合可能吗?

答案1

您的列表存储在哪里?

如果要在单元格 A1 中输入数据,并且列表是 B1:B4,则只需将 B1 中的公式设置为=A1并且您有包含原始值的下拉列表。

不确定这是否符合幽灵单元格的条件,但列表通常存储在工作表的某个位置。

如果您只是想将其存储在数据验证弹出窗口中,我认为这是不可能的。

答案2

输入以下内容事件宏在工作表代码区域:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
t = Target.Text & ","
t2 = t & "cats,dogs,cheeese monkeys"
Application.EnableEvents = False
With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=t2
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = False
End With
Application.EnableEvents = True
End Sub

然后在单元格中输入一个值A1

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

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能使其工作!

相关内容