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 に答える