專治同事的拖延癥! Excel文件到期自動銷毀的技巧

大家好,今天跟大家分享下我們?nèi)绾卧贓xcel中實現(xiàn),數(shù)據(jù)到期后自動消失的效果,在這里跟大家分享2種解決方法,一種是利用vba代碼,另一種是利用條件格式,它們的操作也都非常簡單,對照操作都可以設置成功,下面就讓我們來學習下吧
一、VBA代碼
首先我們需要復制下方的代碼,然后點擊【開發(fā)工具】找到【Visual Basic】在跳出的界面中我們雙擊最下方的【ThisWorkbook】,然后將代碼直接粘貼在右側(cè)的空白區(qū)域中,然后將這個界面關閉掉即可,至此就設置完畢了.
Private Sub Workbook_Open() Application.DisplayAlerts = False If Date = "2021/9/10" Then Sheets("sheet2").Delete Application.DisplayAlerts = Tru End Sub
這個代碼的作用是將于2021年9月10號刪除sheet2這個工作表。需要注意的是sheet2是VB界面中的名稱,也就是工作表最原始的名稱。如下圖,我們可以看到Sheet2(銷毀數(shù)據(jù)),所以在這里才會在Sheets("sheet2").Delete這行代碼中出現(xiàn)sheet2,而不是【銷毀數(shù)據(jù)】這個工作表名稱。至于數(shù)據(jù)何時消失,我們只需要更改2021/9/10這個日期的值即可。
最后需要注意的是我們需要將文件另存為可以保存宏代碼的格式,一般是另存為【xlsm】格式。這個方法也有一定的缺陷,現(xiàn)在很多公司在安全策略上都已經(jīng)禁止電腦運行宏,如果存在這樣的情況,文件有打不開的可能性。
注意:下面這段代碼比較適合Excel用戶,默認支持VBA代碼,打開文件會彈出文件還有多久到期,當文件到期時會給出彈出,整個Excel工作簿會被刪掉。
Private Sub Workbook_Open() ' 設置開始日期和有效期天數(shù) Dim startDate As Date Dim validDays As Integer ' 在這里設置開始日期和有效期(天數(shù)) startDate = #5/12/2025# ' 格式為#月/日/年# validDays = 30 ' 文件有效天數(shù) ' 計算到期日期 Dim expiryDate As Date expiryDate = DateAdd("d", validDays, startDate) ' 獲取當前日期 Dim currentDate As Date currentDate = Date ' 計算剩余天數(shù) Dim daysRemaining As Integer daysRemaining = DateDiff("d", currentDate, expiryDate) ' 檢查是否已過期 If daysRemaining <= 0 Then ' 文件已過期,顯示提示并安排刪除文件 MsgBox "此文件已過期,系統(tǒng)將自動刪除該文件。", vbCritical, "文件已過期" ' 獲取當前文件的完整路徑 Dim filePath As String filePath = ThisWorkbook.FullName ' 創(chuàng)建臨時VBScript來刪除文件 CreateDeleteScript filePath ' 關閉當前工作簿 ThisWorkbook.Saved = True ' 防止保存提示 Application.DisplayAlerts = False ' 禁用警告 ThisWorkbook.Close False ' 退出Excel Application.Quit Else ' 文件未過期,顯示剩余天數(shù) MsgBox "此文件將在 " & daysRemaining & " 天后過期。" & vbCrLf & _ "到期日期: " & Format(expiryDate, "yyyy年mm月dd日"), _ vbInformation, "文件有效期提醒" End If End Sub ' 創(chuàng)建用于刪除文件的VBScript Private Sub CreateDeleteScript(filePath As String) Dim scriptContent As String Dim scriptPath As String Dim fso As Object Dim scriptFile As Object ' VBScript內(nèi)容 - 等待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" ' 創(chuàng)建VBScript文件 Set scriptFile = fso.CreateTextFile(scriptPath, True) scriptFile.Write scriptContent scriptFile.Close ' 執(zhí)行VBScript Shell "wscript.exe """ & scriptPath & """", vbHide ' 清理對象 Set scriptFile = Nothing Set fso = Nothing End Sub
二、條件格式法
條件格式這個方法相對于VBA,它并不是將數(shù)據(jù)刪除了,而是為數(shù)據(jù)設置了格式,將其看不到罷了,因為數(shù)據(jù)還存在,所以我們需要對單工作表設置保護,防止數(shù)據(jù)到期后還能繼續(xù)使用。
excelxian'din件格式的特點是:當條件成立就運行我們設置的格式,條件不成立就不做任何更改。所以條件格式能否成功的關鍵就是條件如何設置。
首先我們選擇需要設置的數(shù)據(jù)區(qū)域。然后找到【條件格式】選擇【新建規(guī)則】點擊【使用公式確定要設置的格式】隨后在下方將公式設置為:=TODAY()>44449,然后點擊【格式】在【數(shù)字】中找到【自定義】將類型設置為;;;需要注意的是這3個分號,需要在英文輸入法下輸入。
在這里today函數(shù)的作用是獲取當天的日期,44449就是2021/9/10對應的數(shù)值,這個函數(shù)的意思就是:今天的時間大于2021年9月10號就代表條件成立,運行我們設置的格式。在這里我們將格式設置為了3個分號,這樣的話單元格就會不顯示任何內(nèi)容,但是這些數(shù)據(jù)其實還是存在的,點擊數(shù)據(jù)的時候,在編輯欄是可以看到數(shù)據(jù)的,所以緊接著我們就需要為表格設置保護了。
三、設置保護
這個就比較簡單了,我們只需要選擇點擊點擊【審閱】找到【工作表保護】將【選定鎖定單元格】與【選定解除鎖定的單元格】的對勾去掉,然后設置一個密碼,這樣的話就無法選中單元格,無法選中單元格也就不能在編輯欄中看到數(shù)據(jù)了,同樣也無法復制數(shù)據(jù)了,至此設置完畢。
以上就是今天分享的2種方法,你更喜歡使用那一種方法呢?
相關文章
excel如何篩選最晚時間的記錄? 一對多匹配結(jié)果中查找出日期最晚的技巧
如果查找結(jié)果有多個匹配值,如何返回日期最晚的那一項?今天教兩個公式可以完美解決這個問題,詳細請看下文介紹2025-01-03合同時間到期自動提醒怎么實現(xiàn)? excel中Today函數(shù)做倒計時的技巧
公司人很多,經(jīng)常有合同到期續(xù)簽問題,我們需要隨時了解當前時間哪些合同是屬于接近到期或者是已經(jīng)到期,以便我們及時進行客戶跟進,下面我們就來看看excel做到期提醒的方2024-11-19excel怎么實現(xiàn)表格時間到了自動變色? excel超過固定天數(shù)自動變色教程
excel表格中可以根據(jù)要求用戶需要設置日期超過固定天數(shù)自動變色的效果,該怎么實現(xiàn)這個效果呢?下面我們就來看看詳細的教程2024-09-12如何自動生成連續(xù)日期? excel自動生成連續(xù)時間段的多種教程
在Excel中,自動生成日期是提高工作效率和確保準確時間記錄的重要一環(huán),本教程將深入介紹如何使用Excel日期函數(shù)和技巧,使您能夠輕松自動生成日期,避免手動輸入日期的繁瑣2024-09-09時間格式00:00:00怎么轉(zhuǎn)換為分鐘? excel將時間轉(zhuǎn)換成小時分鐘技巧
在Excel中處理時間數(shù)據(jù)時,將時分秒快速轉(zhuǎn)換成分鐘數(shù)是一個常見的需求,這里為大家介紹三種將時分秒時間數(shù)據(jù)轉(zhuǎn)化為分鐘數(shù)的方法2024-09-09如何用excel自動記錄數(shù)據(jù)錄入時間? excel自動生成記錄時間的技巧
如何用excel自動記錄數(shù)據(jù)錄入時間?excel表格輸入數(shù)據(jù)的時候如果能自動記錄錄入數(shù)據(jù)的時間就好了,下面我們就來看看excel自動生成記錄時間的技巧2023-09-20Excel時間信息怎么轉(zhuǎn)換成小時? Excel時間轉(zhuǎn)換成小時格式的技巧
Excel時間信息怎么轉(zhuǎn)換成小時?execl表格中顯示的是時間數(shù)據(jù),想要轉(zhuǎn)換成對應的小時,該怎么操作呢?下面我們就來來看看Excel時間轉(zhuǎn)換成小時格式的技巧2023-07-03excel如何計算毛重和皮重的時間間隔 excel計算毛重和皮重時間間隔方法
在日常工作中經(jīng)常會到用excel,有時需要計算毛重和皮重的時間間隔,具體的計算方式是什么,一起來了解一下吧2022-08-01Excel表格怎么單獨提取時間中的小時 Excel表格提取小時數(shù)值的方法
們經(jīng)常會在Excel表格中錄入時間,而不少用戶在使用的時候又需要單獨提取小時,那么具體怎么操作呢?下面小編就帶著大家一起看看吧2022-04-11Excel怎么計算兩個日期間的時間差 Excel計算日期時間差的方法
在日常工作中經(jīng)常會用到Excel表格,有時需要計算表格中兩個日期的時間差,手動計算肯定耗時費力,有什么好的辦法呢?一起來了解一下吧2022-04-11