我有一张包含多个下拉列表的工作表,可以选择某个文本值。 当我在另一张纸中引用这些单元格时,我得到的数字与所选择的值相对应,但不是值本身,例如。我在下拉列表中选择了一个名称,它是该列表中的第二个值,因此当我引用此单元格时,我在另一个表单中得到“2”。
我尝试过Value功能,但无济于事。 如何在此新工作表中显示实际值,而不是检索列表中的值?
感谢您的时间。
答案 0 :(得分:1)
我假设您正在使用表单组合框控件 - 您已在控件属性中输入了输入范围和单元格链接。
使用INDEX
公式返回该项目。
例如,如果您的输入范围是$ B $ 1:$ B $ 4且您的单元格链接是$ B $ 11,则此公式将返回值:=INDEX($B$1:$B$4,$B$11)
如果你的链接单元格显示3,公式就是说“从输入范围列表中返回第三项”。
要通过VBA代码返回值,请将此代码添加到普通模块:
Sub Dropdown_OnChange()
Dim dd As DropDown
Set dd = ActiveSheet.Shapes(Application.Caller).OLEFormat.Object
MsgBox dd.List(dd.ListIndex)
End Sub
右键单击您的控件,选择“指定宏”并选择上面的代码宏。该代码适用于所有下拉框 - Application.Caller返回触发事件的下拉列表 NB:从Return the selected text from a dropdown box
复制的代码