如何在Excel中选择显示的小数

时间:2019-04-12 13:25:01

标签: excel vba decimal

我正在尝试编写一个代码,该代码从某些单元格中获取一些数字,并在句子中使用它们的值。但是小数点太多了,我无法缩小它们的范围

Dim export As Long

Select Case export
    Case Is >= 1000000000
        result = "Dünya … ihracatı incelenmiştir. 2018 yılı dünya ihracat değeri yaklaşık " & Range("G15").Value / 1000000000 & " milyar $'dır."
    Case Is >= 1000000
        result = "Dünya … ihracatı incelenmiştir. 2018 yılı dünya ihracat değeri yaklaşık " & Range("G15").Value / 1000000 & " milyon $'dır."
    Case Is >= 1000
        result = "Dünya … ihracatı incelenmiştir. 2018 yılı dünya ihracat değeri yaklaşık " & Range("G15").Value / 1000 & " bin $'dır."
End Select

Range("O2").Value = result

例如,G15中的值现在为1.724.372。我得到的结果是:

Dünya…ihracatıincelenmiştir。 2018yılıdünyaihracatdeğeriyaklaşık1,724372 milyon $'dır。

我只想要1,7。

预先感谢

2 个答案:

答案 0 :(得分:0)

您可以使用Round(Range("G15").Value / 1000000, 1)中的@CLR来实现。尽管可以使用以下内容来扩展一点

Const StartString As String = "Dünya … ihracati incelenmistir. 2018 yili dünya ihracat degeri yaklasik "
Const EndString As String = " $'dir."
Dim result As String
Dim strEndings() As Variant: strEndings = Array(" bin", " milyon", " milyar")
Dim RoundedNumber As Double
Dim t As Double
Dim i As Long

t = Range("G15").Value2

For i = 9 To 3 Step -3
    RoundedNumber = t / (1 * 10 ^ i)
    If RoundedNumber > 1 Then Exit For
Next i
If i > 0 Then
    result = Round(RoundedNumber, 1) & strEndings((i / 3) - 1)
Else
    result = t
End If

Range("O2").Value2 = StartString & result & EndString

答案 1 :(得分:0)

使用Round函数:

Dim export As Long

Select Case export
    Case Is >= 1000000000
        result = "Dünya … ihracati incelenmistir. 2018 yili dünya ihracat degeri yaklasik " & Round(Range("G15").Value / 1000000000, 1) & " milyar $'dir."
    Case Is >= 1000000
        result = "Dünya … ihracati incelenmistir. 2018 yili dünya ihracat degeri yaklasik " & Round(Range("G15").Value / 1000000, 1) & " milyon $'dir."
    Case Is >= 1000
        result = "Dünya … ihracati incelenmistir. 2018 yili dünya ihracat degeri yaklasik " & Round(Range("G15").Value / 1000, 1) & " bin $'dir."
End Select

Range("O2").Value = result

Round(1.2345678, 1)等于1.2