1

スプレッドシートを作成していますが、特定の年齢で行が自動的に削除されるようにしたいと考えています。これを行う方法はありますか?私の会社はエンジニアリング リクエストをニューヨーク オフィスに提出します。私はジョブ トラッカーを作成して、提出から計画の受領までの時間を監視しています。上司は、一定期間後にデータ行を削除する方法を見つけられれば、それを望んでいます。日数のカウントと、新しいジョブの追加による自動更新のすべての数式を取得しましたが、このタスクの実行方法がわかりません。ご意見ありがとうございます。

4

1 に答える 1

0

以下のコードのようなものがうまくいくはずです。この例では、行 2 から開始し、列 F の日付をチェックして、これが定義された間隔の日数 (ここでは 21) よりも大きいかどうかを確認します。必要に応じて、これらの変数の初期化を変更できます。

Sub delete_old()

    Dim rowDate
    Dim curDate
    Dim interval
    Dim curAdd
    Dim vCell As Range

    ' set interval to an appropriate no of days
    interval = 21 ' can be more precise e.g. for 5 mins: (1 / 24) / 12
    curDate = Now()

    ' assuming we want to start from row 2 and that date is in column F
    Set vCell = Range("F2")

    ' Set Do loop to stop when an empty cell is reached.
    Do Until IsEmpty(vCell)
        curAdd = vCell.Address
        If curDate - vCell.Value >= interval Then
            vCell.EntireRow.Delete
            Set vCell = Range(curAdd)
        Else
            Set vCell = Range(curAdd).Offset(1, 0) ' next row
        End If
    Loop

    Set vCell = Nothing

End Sub

ワークブックを保存または開くなどのイベントで、これを自動的に呼び出す必要があります。これを設定するのに支援が必要な場合や、上記のコードに関する説明が必要な場合はお知らせください。

于 2013-07-23T00:41:04.193 に答える