我正在使用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 /宏/功能?
答案 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