1

我正在使用 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/宏/函数?

4

1 回答 1

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
于 2013-05-03T16:03:33.510 回答