[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列を日付化』(こっこ)
はじめましてエクセル初心者です。ここ4日いろんなサイトやページを探していましたが見つからなかったので質問させてください。
J列に日付がどばっと入っています。所々空欄もあります。(文字列で20180101のように8桁で)これを連続作業でdate化したいのですがループがいまいち理解できず構文を組めずにいます。
日付の開始行は4行目からでデータは1000以上あるかもしれません。ご助力お願いいたします。
< 使用 Excel:unknown、使用 OS:Windows7 >
(マナ) 2018/08/02(木) 18:40
Dim i As Long Dim s As String For i = 4 To ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1 s = Cells(i, "J").Value If s Like "########" Then Cells(i, "K").Value = DateSerial(Left(s, 4), Mid(s, 5, 2), Right(s, 2)) End If Next End Sub
またはK4に
=DATEVALUE(LEFT(J4,4)&"/"&MID(J4,5,2)&"/"&RIGHT(J4,2))
と入れてコピー
(名無し) 2018/08/02(木) 18:48
Sub Macro例()
Dim i As Long, oug As String With ThisWorkbook.Sheets("Sheet1") For i = 4 To .Range("J4").End(xlDown).Row oug = .Cells(i, "J").Value If Len(oug) = 8 Then .Cells(i, "J") = Format(DateSerial(Left(oug, 4), Mid(oug, 5, 2), Right(oug, 2)), "YYYY/M/D") End If Next i End With End Sub
(TAKA) 2018/08/02(木) 18:49
基本的には旨く書けていますよ。
これがネックなんですか? ↓ >所々空欄もあります
なら、下から最終行を探ってください。
>For i = 1 To Range("J4").End(xlDown).Row ↓ ↓ For i = 4 To Range("J50000").End(xlUp).Row
(半平太) 2018/08/02(木) 18:55
Range("A1").AutoFilter Field:=1, _Criteria1:=">=" & m,_
Criteria2:="<=”n,_
Operator:=xlAnd
(こっこ) 2018/08/02(木) 18:57
Dim i As Long, oug As String With ThisWorkbook.Sheets("Sheet1") For i = 4 To .Range("J4").End(xlDown).Row oug = .Cells(i, "J").Value If Len(oug) = 8 Then .Cells(i, "J") = Format(DateSerial(Left(oug, 4), Mid(oug, 5, 2), Right(oug, 2)), "YYYY/MM/DD") End If Next i End With Dim m, n As Date m = Application.InputBox(prompt:="開始年月日は?(yyyy/mm/dd) ", Type:=1) n = Application.InputBox(prompt:="最終年月日は?(yyyy/mm/dd) ", Type:=1) Range("A1").AutoFilter Field:=1, _Criteria1:=">=" & m,_ Criteria2:="<=”n,_ Operator:=xlAnd End Sub (こっこ) 2018/08/02(木) 19:02
駄目です。半平太さんの回答を参考にするとよいです。
'------
>Range("A1").AutoFilter Field:=1, _Criteria1:=">=" & m,_
これも駄目です。
オートフィルタのデータ範囲を明確に指定してください。
面倒ならJ3:J5000でもよいです。
'------
>それは区切り位置でdate判定になるということでしょうか?
J列を選んで、「区切り位置」実行してみてください。
https://www.becoolusers.com/excel/8-digit-number.html
マクロでも1行コードですが、手作業でも30秒も掛かりません。
ところで、日付に変換する作業は
1回実行するだけでよいのでは?
オートフィルタ実行のたびに必要なのですか。
オートフィルタも開始日と終了日の入力させるなら
手作業でも手間変わらないのでは?
(マナ) 2018/08/02(木) 20:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.