我需要你的帮助来创建一个Excel文件中的宏来清除工作表中的所有值,这些值被称为" Sheet1"从今天开始的四天后,即" 2015年6月2日和#34;并保存。因此,一旦用户在第五天打开Excel文件,该表将为空白。
清除数据的代码是:
Sheet1.Cells.Clear
但我的问题是如何在四天后清除数据并保存更改,而用户无法在第五天看到任何数据。
答案 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