[[20220810192842]] 『前月の日付のみのデータを残し、それ以外は削除し』(芙蓉) ページの最後に飛ぶ

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

 

『前月の日付のみのデータを残し、それ以外は削除したいのですが』(芙蓉)

7月にデータの抽出を行った場合は正常にできたのですが、
8月分のデータ抽出作業を行ったところエラーが発生してしまいました。

具体的には、D列に下記の日付が入力されています。

 2022/5/25
 2022/6/1
 2022/6/2
 2022/6/7
 2022/7/8

上記の日付の内、前月の日付(2022/7/8)が入力された行のみ残し、
それ以外は削除したいのですが、
「型が一致しません」というエラーが出てしまいます。

実行vbaは下記となります。

    Dim r As Range
    Dim d As Date
    d = DateAdd("m", -1, DateSerial(Year(Date), Month(Date), 1))
    With Range("D4", Cells(Rows.Count, "D").End(xlUp))
        For Each r In .Cells
            If Not DateSerial(Year(r), Month(r), 1) = d Then
                r.ClearContents
            End If
        Next r
        On Error Resume Next
         .SpecialCells(xlCellTypeBlanks).EntireRow.Delete xlShiftUp
         On Error GoTo 0
         End With

「If Not DateSerial(Year(r), Month(r), 1) = d Then」
に問題があると表示されています。

試行錯誤でやっているのですが、上手くいきません。
ご教示宜しくお願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 提示例と提示コードでは、想定通り(2022/7/8の行のみ残る)の動作をしました。

 型が一致していないとのことなので、
 D列に日付以外のデータが入っているということはないですか?
 空白行があってもエラーになると思います。
(ホタルイカ) 2022/08/10(水) 20:05

編集がかぶりしましたがそのまま。

>試行錯誤でやっているのですが、上手くいきません。
どのようなことを試行錯誤されましたか?

 1.前月を調べる
 2.前月より前(例なら2022/7/1より前)なら行削除

とすれば、よいだけですよね。判定条件を見直してみては?

(もこな2) 2022/08/10(水) 20:07


早々にご回答を有り難うございます。
D列には日付のみが入っており、空白セルはありません。
ホタルイカさんは正常な動作をされたとのことですので、
データを再度見直しているところです。

重ねての質問で申し訳ないのですが、別の作業でもエラーが出てしまっています。
Sheet1にエクスポートしたデータを貼り付け、
体裁調整をした後、Sheet2に貼り付けるマクロを組んでいるのですが、
「既にデータがあります。置き換えますか?」というメッセージが出ます。

「OK」を押すとO列まであったデータがK列までになってしまうのです。
(4列が消えてしまう)
「いいえ」を押すと「RangeクラスのText To Columnsメソッドが失敗しました」と
なってしまいます。

エラーが関係しているvbaは

Selection.TextToColumns Destination:=Range("I1"), DataType:=xlDelimited, _

        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True

の箇所で発生しています。
このメッセージはどの様な時に出るのでしょうか。

実は今月初めにデータを抽出して同様のマクロを実行した時は、
正常に動作していまして・・・。

どうぞ宜しくお願い致します。

(芙蓉) 2022/08/10(水) 22:45


 >データを再度見直しているところです。
 エラーで止まった時のrの値を見れば良いのでは。

 区切り位置の方ですが、
 スペースで区切る様ですが、区切るデータの末尾にスペースが入っていませんか?
 4列が消えているのではなく、末尾のスペースが上書きされているのでは。
(ホタルイカ) 2022/08/11(木) 07:33

ホタルイカさん、ご指摘有り難うございます。
無事、実行することが出来ました。

データを見直したところ、
挿入した列以上のスペースが入力した文字のところどころに入っていました。
そちらを削除したところ、正常に動作するようになりました。
末尾にもスペースが入っていました。

日付の問題も解消しております。

本当に有り難うございました。

(芙蓉) 2022/08/11(木) 11:31


コメント返信:

[ 一覧(最新更新順) ]


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