2011-08-03 4 views
13

数字のリストの先頭に0を付ける必要があります。ワークシートで書式設定されたVBAでExcelセルの値を取得するにはどうすればよいですか?

e.Nameこれは単にワークシートに表示される番号「0720」のようなものである
Set cel = Sheet.worksh.Cells(1, 1) 
cel.ColumnWidth = 10 
cel.Value = e.Name 
cel.NumberFormat = "0000" 

:数字はループ内で(このように追加しましたが、これは(1を使用した一例であり、1)されています私はこのような何かあれば罰金、しかし:

Msgbox Sheet.worksh.Cells(1, 1).Value 

を私は「720」を取得、私はそれが「0720」である必要があり、私はLen()を使用してチェックし、そのようにゼロを追加することができます知っているが、私は思っていました。私にとってこれを行うRangeオブジェクトでより直接的なアプローチがあった場合

答えて

12

これを使用します

のMsgBoxフォーマット(Sheet.worksh.Cells(1,1).Valueの、シート:あなたはフォーマットが何であるかわからない場合は、さらに良い

Msgbox Format(Sheet.worksh.Cells(1,1).Value, "0000") 
18

数値をテキスト表現と混同しています。

.Textプロパティではなく、.Valueではなく、you might have problems with itのプロパティが必要です。

+6

textプロパティには注意が必要です。セルがこのような "####"のように見える場合、それがあなたに撃たれるでしょう。 Lance Robertsの方法を使う方が安全です。経験からの警告。 – Jon49

7

を。 worksh.Cells(1,1).NumberFormat)

+0

NumberFormatがGeneralの場合、Format( "397"、 "General")を呼び出して結果として "Geoeral"を取得すると、これは期待どおりに機能しません。 – nvuono

+0

397が数値ではなく、テキストとしてFormat()に提供されるという問題はありますか? –