四天后用宏清除工作表值

时间:2015-06-02 12:50:37

标签: excel vba excel-vba

我需要你的帮助来创建一个Excel文件中的宏来清除工作表中的所有值,这些值被称为" Sheet1"从今天开始的四天后,即" 2015年6月2日和#34;并保存。因此,一旦用户在第五天打开Excel文件,该表将为空白。

清除数据的代码是:

Sheet1.Cells.Clear

但我的问题是如何在四天后清除数据并保存更改,而用户无法在第五天看到任何数据。

2 个答案:

答案 0 :(得分:0)

这对你有用。 DateDiff是一个很棒的函数,可以以您选择的单位(年,月,日,小时......)返回两个日期之间的差异,也可以FileDateTime来获取文件的日期< / p>

Sub Workbook_Open()
    If DateDiff("d", FileDateTime(ThisWorkbook.FullName), Now) >= 4 Then
        Sheet1.Cells.Clear
        ThisWorkbook.Save
    End If
End Sub

答案 1 :(得分:0)

我还没有机会测试它,但我可以建议这样的事情:

Private Sub Workbook_Open()
Dim currDate As String, closeDate As String, fileDate As String
Dim oFS As Object, sFile As String

currDate = Date
closeDate = Date(Year(currDate); Month(currDate); Day(currDate)-4)

sFile = Application.ActiveWorkbook.Fullname
Set oFS = CreateObject("Scripting.FileSystemObject")

fileDate = oFS.GetFile(sFile).Datelastmodified

If fileDate <= closeDate Then
    ' Change argument passed to Sheets to whatever sheet you want to kill off
    ActiveWorkbook.Sheets(1)Cells.Clear
End If
End Sub

从这里借用一些代码:https://stackoverflow.com/a/10823572/4604845