excel ComboBox不选取分数,为什么?

kwvwclae  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(154)

我不是这方面的Maven,但我正在尝试创建一个选项列表,这样他们就可以从我创建的用户窗体的组合框中选择1/4、1/2或3/4。数据来自Sheet 1,它完美地显示了每个值的正确格式,但当您运行窗体时,组合框显示的是0.25、0.5或0.75。
范例
| A列|
| - -|
| 四分之一|
| 二分之一|
| 三分之四|

Private Sub UserForm_Initialize()
    ComboBox1.List = Worksheets("Sheet1").Range("A1:A3").Value
    End Sub

我不知道该怎么做。我需要他们显示在分数格式在最简单的方式可能。任何想法如何解决这个问题?谢谢

rekjcdws

rekjcdws1#

创建数组和设置数组似乎适用于.text字段表示,对于组合框:

Private Sub UserForm_Initialize()
    With Sheets(1)
        Dim textArray As Variant
        ReDim textArray(.Range(.Cells(1, 1), .Cells(3, 1)).Count - 1)
        Dim i As Long
        For i = LBound(textArray) To UBound(textArray)
            textArray(i) = .Cells(i + 1, 1).Text
        Next i
    End With
    ComboBox1.List = textArray
End Sub

第一次

jhdbpxl9

jhdbpxl92#

备选方案:

Private Sub UserForm_Initialize()
    With Worksheets("Sheet1")
        ComboBox1.List = .Evaluate("TEXT(A1:A3,""# ?/?"")")
    End With
End Sub
lqfhib0f

lqfhib0f3#

我不得不说,这两个表达式都很完美,适用于我的情况。现在,由于我没有对这些分数执行任何数值运算,Tim的选择很好,因为它是一个快速简单的代码,但对于那些希望使用更精确的数学运算的人来说,西里尔的选项1是答案。现在我想给予一个更简单的选项,我想出来后,我张贴了这个问题,甚至更快,对于我的特殊情况,这样做更简单、更好,因为我没有使用分数进行任何数值运算,而是使用了反斜杠符号。Excel将字符作为文本和数字,而不仅仅是数字,它不会更改任何内容。谢谢你们。我真的很感激你的帮助,我相信很多人也会感激你的。

相关问题