[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA関数:DateSerialが上手く設定できません』(ねね)
ExcelVBA初心者です。
Sheet1にあるJ列の値を同シート内のB列に"yyyy/m/d"の書式に変換したく、
以下のようなコードを設定したのですが、
実行時エラー`1004` `Range`メソッドは失敗しました。というエラーが出ます。
どこが間違っているのかご教授頂けますでしょうか。
なお、J列の値は通常時にDate関数を使うと"yyyy/m/d"の形式に変換できる性質のものですが、
以下のような書式変換ではなぜか"yyyy/m/d"の形式に変換できませんので、DateSerial関数を使って処理したいと考えています。
.Range("B" & i).NumberFormatLocal = "yyyy/m/d"
よろしくお願い致します。
以下抜粋
With Sheets("Sheet1")
Dim i As Date For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("B" & i) = DateSerial(Year(Range("J" & i)), Month(Range("J" & i)), Day(Range("J" & i)))
Next i End With
< 使用 Excel:Excel2019、使用 OS:Windows10 >
Dim i As Date ↓ Dim i As Long
(あ) 2021/07/06(火) 16:34
J列の値のIsDateがTrueならCDateしてあげるだけでも良さそうですね。 (白茶) 2021/07/06(火) 16:41
Year関数などの中のRangeの前に.がないのだがいいのだろうか? (ねむねむ) 2021/07/06(火) 16:47
皆さまにご教授頂きました通り以下のように変更しましたところ、無事処理が完了しました。
CDate関数についても勉強致します。
ありがとうございました。
With Sheets("Sheet1")
Dim i As Long For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("B" & i) = DateSerial(Year(.Range("J" & i)), Month(.Range("J" & i)), Day(.Range("J" & i)))
Next i End With
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.