2017-07-25 23 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

感谢您的想法,但它仍然无法正常工作。我得到相同的东西:( –

相关问题