我想根據第二個單元格的小數位數來更改我的範圍的格式。任何想法? 我使用下面的函數來計算小數(作品)每個範圍的VBA編號格式不同
Function CountDecimalPlaces(aNumber As Double) As Long
Dim len1 As Long, len2 As Long
len1 = Len(CStr(aNumber))
len2 = Len(CStr(Int(aNumber)))
CountDecimalPlaces = len1 - len2 + CLng(len1 <> len2)
End Function
,並想用這個來格式化我的範圍有不同數量的小數
For b = 1 To lastCol
Range(cells(3,b),cells(50,b)).NumberFormat = "0." & CountDecimalPlaces (Cells(2, b)) x 0
Next b
我當然知道「CountDecimalPlaces(細胞(2,b))×0" 沒有按牛逼的工作,但我希望這使它可以理解的,你幫
所提出的功能將失敗整數和使用上比任何一個時期作爲小數點分隔其他系統。使用Application.International(xlDecimalSeparator)。 – Excelosaurus
@Excelosaurus,謝謝你指出。我修改了我發佈的功能。 – Mahesh
由於強制格式,它現在返回0或1。不要以爲你會把它塞進一個乾淨的單行內容中:-)我會用If Round(aNumber,0)= aNumber Then CountDecimalPlaces = 0 Else CountDecimalPlaces = Len(Split(CStr(aNumber)),Application。國際(xlDecimalSeparator),比較:= vbBinaryCompare)(1)))結束如果。 – Excelosaurus