2017-07-25 5 views
0

私は数値として保持するが、長さを20文字に制限する必要がある数値の列を持っています。特定の長さに科学的数字でセルの内容を切り取る

Sub casecheck() 

Dim myString As String 
Dim newString As String 
Dim char As Variant 

'replace all special characters with nothing 
Const SpecialCharacters As String = "!,.,#,$,%,^,&,-,(,),{,[,],},/,\, " 

For i = 2 To trans 

myString = Worksheets("Data Input").Cells(i, 10).Value 
newString = myString 
For Each char In Split(SpecialCharacters, ",") 
newString = Replace(newString, char, "") 
Worksheets("ExpertPay Feed").Cells(i, 3).Value = newString 
Worksheets("ExpertPay Feed").Cells(i, 3).NumberFormat = "0" 
Next 
Next i 

'trim length down to 20 characters 

For i = 2 To trans 
Worksheets("ExpertPay Feed").Cells(i, 3).Value = Left(Worksheets("ExpertPay Feed").Cells(i, 3).Value, 20) 
Next i 


End Sub 

非常に長い数字がある場合を除いて、私のコードは本当にうまく機能します。例:

この元の番号:1.31137E + 17は13113690920150400000000000000000 になり、余分なゼロをすべて削除することはできません。

答えて

0

は、この機能を試してみてください:

Function TrimTrailingZeroes(BigNumber As String) As String 
    Dim i As Integer 
    For i = Len(BigNumber) To 1 Step -1 
     If Mid(BigNumber, i, 1) <> "0" Then 
      TrimTrailingZeroes = Left(BigNumber, i) 
      Exit Function 
     End If 
    Next i 
    TrimTrailingZeroes = BigNumber 
End Function 

ときどきテキストとして数値を処理する簡単な方法することができに。

+0

アイデアをありがとうが、それでも動作しません。私は同じことを得ている:( –

関連する問題