首页 > 解决方案 > 180 天后自动删除单元格并移动行

问题描述

感谢您花时间阅读我的问题。我到处寻找,我无法弄清楚如何实现我的目标的代码。

在此处输入图像描述

我正在寻找一个代码来在 180 天后自动删除一个单元格并将该行的剩余内容移过来。例如:我在 D9 单元格中有一个日期,一旦该日期突出显示为蓝色并且从今天的日期过去 180 天......我希望它自动删除并将剩余的行详细信息移动到左侧 2 个单元格。因此 D9 和 E9 将自动删除并将 F9 移动到 D9 等该行的其余部分。请让我知道这是否有意义。再次感谢您花时间审查我的问题。

标签: excelvba

解决方案


如果通过“自动删除”表示您希望它在每次打开工作簿时运行,您可以执行以下操作:

1)打开工作簿:

2) 按住“Alt”键并按“F11”打开 VBA 编辑器

3) 在左侧的 Project Explorer 中,在“Microsoft Excel Objects”下,双击“ThisWorkbook”。

4) 将以下代码粘贴到编辑器中:

Sub Workbook_Open()


    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    If CDate(ws.Range("D9")) < DateAdd("d", -180, Now) Then
        ws.Range("D9, E9").Delete Shift:=xlToLeft
    End If


End Sub

5) 保存并关闭工作簿

您还可以将相同的代码(没有 sub 和 end sub 行)添加到您正在运行的任何现有宏中,它将与该其他宏一起执行。如果通过“自动删除”表示您希望它发生,甚至不必打开工作簿。您可以使用 Windows 中的“任务计划程序”打开工作簿并根据预设的计划运行代码。

如果这回答了您的问题,请记住标记为已回答,这样每个人都会知道您有您的解决方案。如果这不能回答您的问题,请告诉我为什么不回答,我会尽力提供帮助。


推荐阅读