天天看点

制作一个禁止修改文件名的Excel文档

在数据分析场景中,有很多时候需要从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,然后打开的时候判断文件名有没有被更改,如果更改了,就改回原名字之后再打开~

怎么样,这样就可以防止别人改名字了,前提当然是要启用宏啦,毕竟防君子不防小人。。。

继续阅读