一つの方法は、のような小数の#のチェック次のようになります。
Dim str As String
str = Response
If Len(str) - InStr(str, ".") > 2 Then
Range.Offset(0, 0).Value = "'" & str
Else
Range.Offset(0, 0).Value = str
End If
それとも単に全体の数を確認するために、常にRange.Offset(0, 0).Value = "'" & Response
を行う;)
別の方法です数字形式の変更は次のようになります。
Dim str As String, x As Byte
str = Response
x = Len(str) - InStr(str, ".")
Range.Offset(0, 0).Value = str
If x < 2 Then x = 2
Range.Offset(0, 0).NumberFormat = "0." & Application.Rept("0", x)
EDIT:
Range.Offset(0, 0).NumberFormat = "0" & Application.DecimalSeparator & Application.Rept("0", x)
また、変更後に編集2 If Len(Range.Offset(0, 0).Text) - Len(Range.Offset(0, 0).Value) Then
Range.Offset(0, 0).NumberFormat = "0" & Application.DecimalSeparator & Application.Rept("0", x)
End If
のように行うことができます
:あなたのような右のいずれかを取得するためにApplication.DecimalSeparator
を使用することができます局在化のための :
セルの自動セル化の場合は、Ronとdirectのアプローチを使用できますLYだけ.3
ことが3.
として示さ3
と0.3
につながる#
を用い
0.0###############
に細胞数形式を設定しました。区切り文字として,
を使用する場所に変更すると、自動的に数値書式が変更されるはずです。
:VBAが、VBAのコードは次のようになりますRange.Offset(0,0).Valueの= CDBL(レスポンス)それ以外の場合は、多分あなたは、文字列の代わりに二重のような応答を宣言することができ –
私はそれを試みたが、それは常に私に0.00を返し、あまり役に立たない。また、応答変数は文字列の値を返すユーティリティツールからその値を取得しますが、Excel VBAで文字列からdoubleへの変換が役立つかどうかはわかりません。 –
値を設定する前にrange.numberformat = "@"を使用してください。正しいセルをフォーマットするように同じオフセットパラメータを含めるようにしてください。 –