跟大家分享下如何在Excel中實現:數據到期,自動銷毀的效果,跟大家分享解決的方法,可以根據自己的實際來設置。
一、Vba代碼
這個方法比較適合Excel用戶,默認支持VBA代碼,打開文件會彈出文件還有多久到期,當文件到期時會給出彈出,整個Excel工作簿會被刪掉。首先需要復制下面的代碼
Private Sub Workbook_Open()
' 設置開始日期和有效期天數
Dim startDate As Date
Dim validDays As Integer
' 在這里設置開始日期和有效期(天數)
startDate = #5/12/2025# ' 格式為#月/日/年#
validDays = 30 ' 文件有效天數
' 計算到期日期
Dim expiryDate As Date
expiryDate = DateAdd("d", validDays, startDate)
' 獲取當前日期
Dim currentDate As Date
currentDate = Date
' 計算剩余天數
Dim daysRemaining As Integer
daysRemaining = DateDiff("d", currentDate, expiryDate)
' 檢查是否已過期
If daysRemaining <= 0 Then
' 文件已過期,顯示提示并安排刪除文件
MsgBox "此文件已過期,系統將自動刪除該文件。", vbCritical, "文件已過期"
' 獲取當前文件的完整路徑
Dim filePath As String
filePath = ThisWorkbook.FullName
' 創建臨時VBScript來刪除文件
CreateDeleteScript filePath
' 關閉當前工作簿
ThisWorkbook.Saved = True ' 防止保存提示
Application.DisplayAlerts = False ' 禁用警告
ThisWorkbook.Close False
' 退出Excel
Application.Quit
Else
' 文件未過期,顯示剩余天數
MsgBox "此文件將在 " & daysRemaining & " 天后過期。" & vbCrLf & _
"到期日期: " & Format(expiryDate, "yyyy年mm月dd日"), _
vbInformation, "文件有效期提醒"
End If
End Sub
' 創建用于刪除文件的VBScript
Private Sub CreateDeleteScript(filePath As String)
Dim scriptContent As String
Dim scriptPath As String
Dim fso As Object
Dim scriptFile As Object
' VBScript內容 - 等待Excel關閉后刪除文件
scriptContent = "On Error Resume Next" & vbCrLf & _
"Dim fso, wsh" & vbCrLf & _
"Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf & _
"Set wsh = CreateObject(""WScript.Shell"")" & vbCrLf & _
"' 等待5秒確保Excel已關閉" & vbCrLf & _
"WScript.Sleep 5000" & vbCrLf & _
"' 嘗試刪除文件" & vbCrLf & _
"If fso.FileExists(""" & filePath & """) Then" & vbCrLf & _
" fso.DeleteFile """ & filePath & """, True" & vbCrLf & _
"End If" & vbCrLf & _
"' 刪除自身" & vbCrLf & _
"fso.DeleteFile WScript.ScriptFullName, True" & vbCrLf & _
"Set fso = Nothing" & vbCrLf & _
"Set wsh = Nothing"
' 獲取臨時文件夾路徑
Set fso = CreateObject("Scripting.FileSystemObject")
scriptPath = fso.GetSpecialFolder(2) & "\DeleteExcelFile.vbs"
' 創建VBScript文件
Set scriptFile = fso.CreateTextFile(scriptPath, True)
scriptFile.Write scriptContent
scriptFile.Close
' 執行VBScript
Shell "wscript.exe """ & scriptPath & """", vbHide
' 清理對象
Set scriptFile = Nothing
Set fso = Nothing
End Sub
二、使用代碼
我們修改代碼的2個地方,讓這個復制實際的需求,代碼修改后按下快捷鍵ALT+F11調出VBA的編輯窗口,之后找到【ThisWorkbook】將代碼粘貼到里面。按下快捷鍵【Ctrl+S】保存代碼,最后需要將文件另存為【XLSM】格式。這個格式可以保存宏代碼
startDate = #5/12/2025# 文件的開始日期
validDays = 30 ' 文件有效天數
以上就是今天分享的全部內容,大家可以試一下,還是非常好用的~
如果你想要提高工作效率,不想再求同事幫你解決各種Excel問題,可以了解下我的專欄,WPS用戶也能使用,講解了函數、圖表、透視表、數據看板等常用功能,AI的也已經在路上了,后期都會免費更新的
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.