我想向单元格 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。
因为它是工作表代码,所以非常容易安装和自动使用:
- 右键单击 Excel 窗口底部附近的选项卡名称
- 选择查看代码-这将打开一个 VBE 窗口
- 粘贴内容并关闭 VBE 窗口
如果您有任何疑虑,请首先在试用工作表上尝试一下。
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 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
必须启用宏才能使其工作!