C-L*_*511 4 excel vba excel-vba
我有我的第一个"客户 - 带我的工作 - 然后 - 幻影我没有付费"的经历.对于未来,我想放入一个killswitch,伪装成一个普通的宏,这使整个事情无法使用.这样,即使他们雇用某人破解密码并删除我的"你的试用期已过期......"检查,一个看起来很正常的宏(像"Fix_Sheet_Formatting"之类的东西)很容易被忽视和运行,摧毁一切并保存变化.
然而,这离开了VBA ...我们在这里谈论完全清除,所以一切都必须去.我会弄清楚如何自己做所有这些,我只是不想浪费时间去追求一些不可能的事情:
可以VBA代码删除自己从一个工作簿时运行或者它必须从另一个工作簿中的宏删除?删除代码会导致宏停止运行,还是我可以删除除了令人讨厌的MsgBox之后的所有内容?
我会留下评论来辩论这是否是一个好主意(恕我直言,它可能不是).至于问题本身,当然有可能,并且不会中断宏执行:
Public Sub Example()
Dim proj As Object
Set proj = ThisWorkbook.VBProject
Dim comp As Object
For Each comp In proj.VBComponents
With comp.CodeModule
.DeleteLines 1, .CountOfLines
If comp.Name = "ThisWorkbook" Then
.InsertLines 1, "Private Sub Workbook_Open()" & vbCrLf & _
vbTab & "MsgBox ""Where's my money, @#$%&!?""" & vbCrLf & _
"End Sub"
End If
End With
Next
ThisWorkbook.Save
End Sub
Run Code Online (Sandbox Code Playgroud)
混淆是读者的练习.
归档时间: |
|
查看次数: |
1629 次 |
最近记录: |