[[20130129141953]] 『VBAで日付形式を変更して、数値にしたい』(みみ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAで日付形式を変更して、数値にしたい』(みみ)

ある範囲に日付(yyyy/mm/dd)が入っているのですが、
日付でなく、数値に変換したいです。(yyyymmddにしたい。)

すみません、変数などもそのまま書きますが

    Range(Cells(j, 13), Cells(j + k, 16)).NumberFormatLocal = "yyyymmdd"

これでは見た目はyyyymmddになりましたが、日付形式のままで、ダメでした。
どうしたら数値になるのでしょうか。
教えて下さい。

エクセル2003
WindowsXP


 これで出来るでしょうか。
    With  Range(Cells(j, 13), Cells(j + k, 16))
        .Value = CLng(Application.Text(.Value, "YYYYMMDD"))
        .NumberFormatLocal = "0"
    End With
 (Mook)

 こんな感じでいいんじゃないの?

    With Range(Cells(j, 13), Cells(j + k, 16))
        .NumberFormat = "0"
        .Value = Evaluate("if(" & .Address & "<>"""",text(" _
        & .Address & ",""yyyymmdd""),"""")")
    End With
 (seiya)

seiyaさんのもので出来ました。
Mookさんのものは「型が一致しません」となりました。

ありがとうございました!

(みみ)


 解決後ですが、
    With  Range(Cells(j, 13), Cells(j + k, 16))
         If IsDate(.Value) Then
            .Value = CLng(Application.Text(.Value, "YYYYMMDD"))
            .NumberFormatLocal = "0"
         End If
    End With
 ということかな?おそらくデータが日付じゃない(あるいは空)ところで
 エラーになっていたかと思います。
 (Mook)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.