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

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