2016-06-28 6 views
0

celllの値に日付が含まれているかどうかを確認する複数の方法を試しました。そうであれば、整数の代わりに日付形式で日付を返します。それと。しかし、私は多くの異なるapporachesを試しても、出力として日付の形式ではなく番号を取得します日付フォーマットではなく整数を返すVBA

ここで私の最新の演出は、誰かが間違っている場所を指摘したいですか?

Set rRng = sheet.Range("a1:a2500") 
For Each rCell In rRng.Cells 
If IsDate(rCell) Then 
    rCell = Format(Date, "mm/dd/yyyy") 
    wsO.Cells(wsO.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = rCell 
Else 
    wsO.Cells(wsO.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = rCell 
End If 
+2

は、私はちょうどあなたが達成したいものを推測していました。しかし、 'rCell = Format(Date、" mm/dd/yyyy ")'を 'rCell.Numberformat =" mm/dd/yyyy "'に変更することをお勧めします。覚えておいてください:日付は日付であり、それによって数字(あなたが正しく指摘した通り)です。しかし、 '.NumberFormat'は、数値がExcelシート上でどのように表示されるかを(純粋に視覚的な表現で)変更することを可能にします。 – Ralph

+0

私は "wsO.Cells(wsO.Rows.Count、1).End(xlUp).Offset(0、6).Value = rCell.Offset(0、6).NumberFormat =" mm/dd/yyyy ""これはいくつかのスポットで、短い日付(どちらでもかまいません)では動作しませんでしたが、10進数(時間/日付スタンプのb/c)を含む変換された整数の日付では、 –

答えて

0

これは完全に機能しました。

wsO.Cells(wsO.Rows.Count, 1).End(xlUp).Offset(0, 5).Value = CDate(rCell.Offset(0, 5)) 

CDate関数はトリック:)

関連する問題