在資料分析場景中,有很多時候需要從Excel檔案導入更新資料,如果檔案名字不固定,重複執行時就有可能會出現麻煩的問題,是否可以利用技術手段對Excel檔案名字做一個保護呢?
廢話不多說,直接上代碼。
Sub auto_open()
Dim f As String
Const fn As String = "1.xlsm" '固定檔案名,修改這裡即可
If ThisWorkbook.Name <> fn Then
f = ThisWorkbook.FullName
ThisWorkbook.Saved = True
ThisWorkbook.ChangeFileAccess xlReadOnly
FileCopy f, ThisWorkbook.Path & "\" & fn
Kill f
Workbooks.Open ThisWorkbook.Path & "\" & fn
ThisWorkbook.Close False
End If
End Sub
原理是為你的檔案增加一個打開就執行的宏,Auto_Open,然後打開的時候判斷檔案名有沒有被更改,如果更改了,就改回原名字之後再打開~
怎麼樣,這樣就可以防止别人改名字了,前提當然是要啟用宏啦,畢竟防君子不防小人。。。