2011-11-25 19 views
39

Excelシートに「期間」の列があります。そのセルフォーマットは常に変更されます—私は分を秒から秒に変換したいのですが、セルの書式設定のために常に異なる答えが得られます。VBAを使用してセルの書式をテキストに変更する方法

変換を行う前に、そのセルの書式をテキストに変換して、テキストの値として認識し、自動書式を設定しようとはしないと考えていました。

現在、すべてのデータをメモ帳にコピーしてから、Excelシートに保存して以前の形式をすべて削除しています。 VBAを使用してセルの書式設定をテキストに自動設定する方法はありますか?

+3

"セル形式は常に変更されますか?"例を示してください。 –

答えて

72

あなたの直接的な質問に答えるために、それは次のとおりです。

Range("A1").NumberFormat = "@" 

それとも

Cells(1,1).NumberFormat = "@" 

しかし、私はあなたが実際に表示したいものに形式を変更することをお勧めします。これにより、データ型をセルに保持し、セル式を使用してデータを簡単に操作できます。

7

これは、書式をテキストに変更する必要があります。

Worksheets("Sheetname").Activate 
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select 
Selection.NumberFormat = "@" 
+16

NumberFormatを変更する前に、アクティブ化するか選択する必要はありません.Seets(1).Columns(1).NumberFormat = "@"のようなものを使用してください。 – aevanko

2

ワンポイント:値をセルにロードする前にNumberFormatプロパティを設定する必要があります。セルがロードされた後にNumberFormatが設定されたとき、9桁の数字が9.14E + 08として表示されました。

あなたが最初の自動調整を試みることができる:値をロードする前にプロパティを設定すると、私が望んでいたとしてストレートテキスト

ORのように番号が表示されました。
Excel_Obj.Columns( "A:V")。EntireColumn.AutoFit

関連する問題