2番目のセルからの小数点以下の桁数に従って、範囲の書式を変更したいとします。何か案が?私は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" のdoesnのtの仕事をxは、私はあなたが
提案機能は、全体の数字のためにと小数点区切りとしてピリオドよりも何か他のものを使用しているシステム上で失敗します。 Application.International(xlDecimalSeparator)を使用します。 – Excelosaurus
@Excelosaurus、それを指摘してくれてありがとう。私は投稿した機能を変更しました。 – Mahesh
これは、フォーマットのために0または1を返します。あなたがきれいなライナーにこれを詰め込むとは思わない:-)私はラウンド(aNumber、0)= aNumber Then CountDecimalPlaces = 0 Else CountDecimalPlaces = Len(分割(CStr(aNumber)、Application)。国際(xlDecimalSeparator)、比較:= vbBinaryCompare)(1)))終了します。 – Excelosaurus