2016-08-22 20 views
-2

検索エンジンのクイック実行で解決できるはずの質問をするのは本当に嫌ですが、役に立たないと思っています。VBA Excel - 整数に小数点以下の桁数を追加する

実際には10進数で表現する必要があるが、そうでないCSVからいくつかのデータを抽出しています(757.46ではなく75746など)。 Format(expresion、 "Currency")、Format(式、 "Fixed")などを使用しても、目的の効果はありません。関数は小数点と余分なゼロ(757.46ではなく75746.00)を追加するだけです。整数を取るようにモジュールに指示する簡単な方法はありますか?右に2つの数字を、小に左側に変数番号を追加し、何も追加しないでください。私は、文字列に変換してサブ文字列などを使用してこれを行う方法があると確信していますが、可能ならばそれを避けたいと思います。

ありがとうございます!

+2

フォーマットを100で割り算した後に –

+0

どのようにデータを抽出していますか?データタブを使用している場合は、Excelに小数点の区切り記号を教えてください。http://superuser.com/questions/385511/easy-way-to-one-off-import-data-with-different -decimal-separator-in-excel – Ralph

+2

コードやデータを見ることなく、最適なソリューションを提供することはできません。 [良い質問をするにはどうすればよいですか]のヘルプトピック(http://stackoverflow.com/help/how-to-ask)、[最小限で完全で検証可能なサンプルを作成する方法](http ://stackoverflow.com/help/mcve) –

答えて

2

Format(expresion, "Currency")を使用している場合は、セルとしてあなたの75746.00を与えている、そしてFormat(expression/100, "Currency")を与える必要があります正しい結果。あなたはまた、小数点を持っていないことを確認する必要があります

+0

まあ、私は愚か者のように感じることを知っています。どのように私はとても単純なものを見過ごすことができます。あなたと提案をしたすべての人に感謝します。 – KellyMarchewa

1

あなたが100で与えられた数値を分割し、通貨として書式設定すると効果があります。

1

コードの下使用し、それが行をループし、列Bの列AからORIG値を入れます。

Sub ChangeOrigFormat() 

Dim lrow As Long 

' modify to your last row , or use dynamic last row method 
For lrow = 2 To 10 

    ' put result on Column B 
    With Cells(lrow, 2) 
     ' looking in original values in Column A >> modify according to your needs 
     .Value = Cells(lrow, 1)/100 
     ' using a decimal with 2 digits after the "." 
     .NumberFormat = "0.00" 
    End With 

Next lrow 

End Sub 
関連する問題