你如何设置显示值,但select密钥的下拉菜单?
在Excel中,我有一个定义的名称范围,其值如下所示:
+----------+------+ | BodyPart | Code | +----------+------+ | Head | 1 | | Torso | 2 | | Abdomen | 3 | | Ankle | 4 | +----------+------+
由于代码很难记住,我正在尝试设置数据validation,以在下拉菜单中显示BodyParts,并在选中时在电子表格中显示代码。
这是如何完成的?
这是一个vba解决scheme,将解决您的问题(链接解释如何做,以防万一你需要他们)的各种事情:
- 将您的表格放在文件的另一张表格中
- 将BodyPart列定义为
BodyPart
(将作用域设置为Workbook Level) - 为整个表(两列)定义一个名称
BodyPartCode
(将范围设置为工作簿级别) - 将每个单元格的数据validation设置为具有Source
=BodyPart
列表 - 将下面的代码放在
Worksheet Module
的数据中。
下面的代码将在用户每次更改工作表上的单元格值时运行。 如果更改的单元格与DropDown列表位于同一列中,则代码将根据input的正文部分查找正文部分代码,然后从单元格中删除数据validation,以便代码可以在不中断的情况下input到单元格中身体部分的validation下拉。
Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Column = 6 Then 'assumes drop-downs listed in column F, change as needed Dim sPart As String, sCode As String sPart = .Value2 sCode = Application.WorksheetFunction.VLookup(sPart, Range("BodyPartCode"), 2, 0) Application.EnableEvents = False .Validation.Delete .Value = sCode Application.EnableEvents = True End If End With End Sub