Excel 在组合框中以不同的值显示文本
有没有一种方法可以在组合框列表中显示一个项目,但给它一个不同的值 假设我的列表中有1-03表示1'3,但我希望为其指定1.25的值,以便我的公式能够正确计算Excel 在组合框中以不同的值显示文本,excel,vba,Excel,Vba,有没有一种方法可以在组合框列表中显示一个项目,但给它一个不同的值 假设我的列表中有1-03表示1'3,但我希望为其指定1.25的值,以便我的公式能够正确计算 Private Sub UserForm_Activate() 'Values for cmbxSpans cmbxSpans.AddItem "1-03" End Sub 否。Excel不在Listi中的项目条目上提供其他属性来区分显示值和实际值。列表框中的项目存储为字符串。如果您想要双重表示,即1-03=1.25,则必须在添加/读
Private Sub UserForm_Activate()
'Values for cmbxSpans
cmbxSpans.AddItem "1-03"
End Sub
否。Excel不在Listi中的项目条目上提供其他属性来区分显示值和实际值。列表框中的项目存储为字符串。如果您想要双重表示,即1-03=1.25,则必须在添加/读取项目时处理转换 下面是一组基于1-03示例的转换
有很多方法,你能展示一下你的尝试吗?我现在什么都没有。我甚至不知道一种方法。我所拥有的只是我的combobox的.AddItem 1-03。通过cobobox值显示combobox循环的代码,如果value=1-03,则添加,然后计算value=1。25@phil652-我相信马克在问,1-03=1.25,因为1'3等于1.25英尺。所以1-06将=1.5,因为它是1'6可能我不明白,但这似乎没有回答原始问题。我做了一个编辑,以澄清对原始问题的回答。这不能用额外的代码来处理转换,这是我昨天在没有适当上下文的情况下开始使用的。
Private Sub CommandButton1_Click()
ListBox1.AddItem "1-03"
'read item
Dim height As Double
height = FormatToNumber(ListBox1.List(0))
'do some math
height = height * 2
'add it back it
ListBox1.AddItem NumberToFormat(height)
End Sub
Function FormatToNumber(str_feet_inch As String) As Double
Dim values As Variant
'split based on -
values = Split(str_feet_inch, "-")
'do the math, using 12# to ensure double result
FormatToNumber = values(0) + values(1) / 12#
End Function
Function NumberToFormat(val As Double) As String
Dim str_feet As String
Dim str_inch As String
str_feet = Format(Int(val), "0")
str_inch = Format((val - Int(val)) * 12, "00")
NumberToFormat = str_feet & "-" & str_inch
End Function