欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時(shí)間:2025-06-02 17:23:49   作者:佚名   我要評(píng)論
限定Excel數(shù)據(jù)使用時(shí)間,到期自動(dòng)銷毀,該怎么實(shí)現(xiàn)呢?今天分享這兩種方法都能輕松搞定,詳細(xì)如下文介紹

大家好,今天跟大家分享下我們?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)文章

最新評(píng)論