如何讓Excel表使用一次後即自我銷毀?

2021-09-01 04:33:32 字數 910 閱讀 5342

檔案要開啟看過後就自動刪除,如何通過vba程式來實現呢?

解決方案:將檔案的changefileaccess屬性設定為唯讀,即xlreadonly,然後通過kill**刪除檔案即可。不過為了確保使用者可以正常地檢視檔案一次,需要將**寫入工作簿時間「workbook_beforeclose」中。

具體方法如下:

第一步:新建乙個工作簿(也可以開啟已經存在的工作簿),按alt+f11組合鍵開啟vbe視窗。

第二步:雙擊thisworkbook進入工作簿事件**視窗,然後輸入以下**:

private sub workbook_beforeclose(cancel as

boolean)

activeworkbook.changefileaccess xlreadonly 『將檔案設為唯讀模式

kill activeworkbook.fullname   『刪除檔案
end sub

第三步:儲存工作簿,但不能關閉excel。然後進入資料夾將檔案複製兩份,將兩個資料夾分別命名為a.xlsm和b.xlsm。

第四步:關閉excel,發現當前資料夾會自動刪除,且不經過**站**,直接徹底刪除。

工作簿再啟用巨集級檔案屬性為唯讀的前提下,通過kill工作簿全名可以刪除本工作簿。其中工作簿全名可以使用activeworkbook.fullname表示也可以用thisworkbook.fullname表示。

第五步:開啟b.xlsm,然後關閉,b.xlsm也立即自我銷毀。此時將a.xlsm發給客戶即可。

注意,檔案「自殺」的時候,工作簿的changefileaccess屬性有兩個選項,包括xlreadwrite和xlreadonly,只有在xlreadonly狀態下才可以實現刪除當前檔案。在編寫這類「自殺」**的時候,一定要先將檔案備份,否則程式關閉就自我銷毀,無法**。

一次使用pip後的總結

一 當安裝了多個版本python的時候,表示用pythonx 的pip 進行 1.pythonx m pip install 包名 裝 包 2.pythonx m pip install upgrade pip 公升級pip版本 3.pythonx m pip uninstall 包名 卸 載 包 ...

如何讓程式只執行一次例項

最近在做乙個系統的客戶端時,遇到乙個問題 客戶端執行在伺服器上時,如果同乙個使用者或其他使用者執行了這個客戶端,可能會導致錯誤。這就要求該程式的例項只能執行一次。using system using system.collections.generic using system.windows.fo...

如何讓程式只執行一次例項

using system using system.runtime.interopservices using system.windows.forms using system.diagnostics using system.reflection loop through the running...