如何在小数点后保留可变数量的数字

时间:2013-05-03 15:26:24

标签: excel function excel-vba decimal excel-2007 vba

我正在使用Excel 2007.我有多个数据集,每行有随机字符数。例如:

A1 1.60 

A2 0.008 

A3 0.900 

A4 1.0 

A5 0.56 

A6 1.703

我需要在不同的页面上将其设置为不同的顺序,例如

A1 1.60

A2 0.900

A3 1.0

A4 0.56

A5 1.703

A6 0.008

不幸的是,每当我将它移动到一个新页面时(例如,我可以使用= Page1!A1移动它)数字将恢复为

A1 1.6

A2 0.9

A3 1

A4 0.56

A5 1.703

A6 0.008

所以我失去了零。

为了使事情复杂化,每个条目/行/列的字符数在数据集之间变化。这意味着使用=TEXT(A1,"#.#0") 无法工作 - 有时我的A1可能是1498或其他。

我(可能)正在寻找将“计算”显示的小数位数的代码,然后自动生成。或者任何其他方法来获得我的可变数据的小数位数(或缺少)是正确的。 VBA /宏/功能?

1 个答案:

答案 0 :(得分:0)

您可以根据自己的情况调整此代码...

Public Sub MaintainTrailingZeroFormat()
Dim s As String
Dim lngLength As Long, lngDecimal As Long, lngTrailingZero As Long
Dim r As Range
''Grab cell value as text
s = ActiveWorkbook.ActiveSheet.Range("A2").Text
''Find decimal from beginning of string
lngDecimal = InStr(s, ".")
''Find total length of string
lngLength = Len(s)
''Subtract to find number of trailing zeros
lngTrailingZero = i - st
''Set destination cell format to 'TEXT'
ActiveWorkbook.Sheets(2).Range("A1").NumberFormat = "@"
''Populate cell with text value
ActiveWorkbook.Sheets(2).Range("A1") = FormatNumber(s, EX)

End Sub