返回列表 上一主題 發帖

[發問] EXCEL設定某日期到檔案無法開啟

[發問] EXCEL設定某日期到檔案無法開啟

各位高手,請問EXCEL是否可以設定當某個日期到時,某個檔案則無法開啟呢? 謝謝
小雨

回復  hueywen_jia
    另外可否請有權限的大大幫我刪除我附件的壓縮檔呢(在第二頁下方WENWENWENWENW ...
hueywen_jia 發表於 2015-5-16 00:39


下次上傳的範例檔案,
可以酌情將討論串中用不到的部分工作表刪除,
討論會用到的資料可以酌情取用代表性的文字,
若是人名等可能觸犯到個資法的資料則酌予Mark(例如 : 王xx、李一一...等)或是用張三、李四、王美女等替代,
善用 編輯->取代 功能就可以很方便達成此目的,
不過要留意適當安排好先後順序,
例如若先用 5 取代 3,
之後就不適宜用 7 取代 5.(可能會破壞資料的唯一性)

總之要提供怎麼樣內容的範例檔案要看討論的目的與需求.

TOP

回復 42# luhpro


   終於成功了!! 感謝 luhpro 的大力協助! 不願其煩的幫我解答∼因為巨集的文法真的不會,不曾學過,都只有用錄製的方式來寫巨集,真是感激不盡!! 再次謝謝你!∼
小雨

TOP

本帖最後由 luhpro 於 2015-5-15 01:31 編輯
回復  luhpro
我把以下字串都放進去了,這樣不對嗎?請看我的圖片,都有進去呀~  
Private Sub Work ...
hueywen_jia 發表於 2015-5-14 21:07

底下桃紅色這一塊  (刪除自己)程序實體 也要放進去,
Workbook_Open 中 Then 後面的 刪除自己 指令才呼叫的到 該程序 喔:

Public Sub 刪除自己()

    ThisWorkbook.Saved = True

    ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly

    Kill ThisWorkbook.FullName

    ThisWorkbook.Close SaveChanges:=False

End Sub


Private Sub Workbook_Open()

  If Date > #5/28/2115# Then
刪除自己  ' 今天為此日期時, 刪除本檔案, 注意 : 檔案刪除後無法復原, 測試時請務必先備份本檔案.
End Sub

TOP

回復 40# luhpro


我把以下字串都放進去了,這樣不對嗎?請看我的圖片,都有進去呀~  

Private Sub Workbook_Open()

  If Date > #5/11/2015# Then 刪除自己

End Sub
小雨

TOP

回復  luhpro
我照那些字串COPY進去了,可是它還是出現"編譯錯誤:沒有定義這個Sub或Sunciton 然 ...
hueywen_jia 發表於 2015-5-12 21:13

是啊,
38# 最末尾有說了:
且你也要把 Sub 刪除自己 到 End Sub 部分 Copy 過去,
不然一樣會發生找不到 刪除自己 程序的錯誤.

TOP

回復 38# luhpro


   
我照那些字串COPY進去了,可是它還是出現"編譯錯誤:沒有定義這個Sub或Sunciton 然後在刪除自己那反黑了,是找不到這個"刪除自己" 嗎
小雨

TOP

本帖最後由 luhpro 於 2015-5-11 23:38 編輯
回復  luhpro
我照您的方式,但卻出現此對話框
hueywen_jia 發表於 2015-5-10 20:59

你的 Then 後面沒指令.

If...Then... 指令的其中兩種語法:
1.
If  條件式 Then 要執行的指令

(此法為當條件成立時,
程式會執行 Then 後面的指令,
否則不執行該指令,
且不論結果如何執行完畢後會繼續執行下一行的指令,
意即 If 的判斷與執行是在該行跑完後就已經結束)

2.
If  條件式 Then
   要執行的指令
End If

(此法為當條件成立時,
程式會執行 Then 的下一行直到 End If 前的每一行指令,
意即 If 的判斷與執行是在該行開始起,
一直到 End If 指令才結束)

需留意兩種語法的差別,
Then 後面沒指令時就一定要有 End If
反之亦同.

是的,當你條件成立後只需要執行一行指令時,用第 1 種語法就可以了,
若為多行則應用第 2 種語法.

另外,你在套用的時候,
應該要先都全部 Copy 過去,
再依據你的需求做調整.

例如你本來就有 Private Sub Workbook_Open() 時,
Copy 過去會變成有兩個 Open 程序,
這時就要試著把它們整合在同一個 Open 程序內,
看是要前後放,
還是將其中一個程序插在另一個程序的內部.
再刪掉多的那兩行 Sub Workbook_Open 與 End Sub.

除非你確實已經了解了那些指令式在做甚麼,
不然不建議隨意刪減.

完整的該行是:
If Date > #5/28/2115# Then 刪除自己
刪除自己 在 ' 前不是在其後,
所以它是一個指令.
且你也要把 Sub 刪除自己 到 End Sub 部分 Copy 過去,
不然一樣會發生找不到 刪除自己 程序的錯誤.

TOP

回復 36# hueywen_jia
這樣的發問太隨便了  
告訴你編譯錯誤且有說明為何不看說明.VBA的說明真的有那麼難理解嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 35# luhpro

我照您的方式,但卻出現此對話框
   
1

評分人數

    • GBKEE: 不認真學習金錢 -2
小雨

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題