在数据分析场景中,有很多时候需要从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,然后打开的时候判断文件名有没有被更改,如果更改了,就改回原名字之后再打开~
怎么样,这样就可以防止别人改名字了,前提当然是要启用宏啦,毕竟防君子不防小人。。。