2016-08-18 15 views
3

私はVBAで簡単なコードを書いています(そしてherehereの質問があり、これらの解決策はまったく問題ありません)。VBAでの小数点記号の変更

  Dim toString As String 
      toString = cell.Value & "_" 
       If (InStr(toString, ",")) Then 
       toString = Replace(toString, ",", ".") 
       toString = Trim(toString) 
       cell.Value = " " + Left(toString, (Len(toString) - 1))    
       End If 

残念ながら、ドット区切り文字ではなく、excelはcell.Valueにカンマで二重になります。好奇心が強いのは、この空白を "_"と交換すると、fを変換します。例。 12.3から_12.3へどうすれば修正できますか?

P.S.私は最後に "_"を追加して、toStringがStringのままであることを保証します。

+0

この行は何をすべきですか? 'cell.Value =" "+ Left(toString、(Len(toString) - 1))' – Andreas

+0

@Andreasまず、以下のように見えました: 'cell.Value = Left(toString、(Len(toString)-1))'私はcell.Valueがdoubleに変わるので、文字列に変換するための空白を追加しようとしましたが、成功しませんでした。 – lawstud

答えて

2

私はこれまでにこの問題を抱えていました。書き込む前にセルの書式を変更する必要があります。その行が実行さ

Application.Workbooks("Book1").Sheets("Sheet1").Range("A1:A100").NumberFormat = "@" 

した後は、単純にこのような列に書き込むことができます。

Cells(1,1).Value = "12.3" 

Excelは、文字列の書式設定を維持し、二重に変換しません。

これが役に立ちます。

+0

それは動作します!ありがとう:) – lawstud

関連する問題