2012-01-25 23 views
2

Accessデータベースからブックにコピーされる列は2つあります。数値を時間形式に変換するExcel VBA

私はので、私はこのコードを追加したデータが正しくフォーマットされていることを確認したい:

'DateTime Column 
Sheets("Sheet1").Columns("A:A").Select 
Selection.NumberFormat = "m/d/yyyy hh:mm" 

'Time Column 
Sheets("Sheet1").Columns("B:B").Select 
Selection.NumberFormat = "hh:mm" 

日時列の形式が正しく。
時間の列は、最初は時間の値(14:17)の代わりに数値の等価物(つまり0.595277777777778)としてコピーされます。

マクロコードを実行すると、ビジュアルディスプレイに何も表示されず、F2キーを押してフォーマットが適用されるセルに入力するまでは表示されません。

強制的にExcelに書式設定を適用する方法(ループの短さ)はありますか?

+0

は、両方の日付データ型を使用してAccessの列はありますか? – phoog

+0

@phoog - 時刻の列はTEXTです。もう一つは日時です。 –

+0

@ JohnM Sheet.RefreshまたはSheet.RefreshAllコマンドを使用できますか? –

答えて

2

(必要に応じてマクロを使用して)列とコピーをコピーしてExcelがデータ型を再解析し、上記が正しく機能するはずです。

3

あなたが自分自身の範囲の値プロパティを設定することで、スティーブ・ホーマーの答えと同じ効果を達成するためにVBAを使用することができます。

Dim r As Range 
Set r = Sheets("Sheet1").Columns("B:B") 
r.Value = r.Value 
関連する問題