我想根据第二个单元格的小数位数来更改我的范围的格式。任何想法? 我使用下面的函数来计算小数(作品)每个范围的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