我正在尝试编写一个代码,该代码从某些单元格中获取一些数字,并在句子中使用它们的值。但是小数点太多了,我无法缩小它们的范围
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。
预先感谢
答案 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