我想确定一个宏是否由Excel"记录宏"记录,如果可能,如果它已被人修改过。
有一些关于它的线索。例如,
1)录制的宏总是以
开头Sub m()
'
' m Macro
'
'
first line
...
End Sub
(请注意,有时,可能会在m Macro
)之后记录用户名
2)记录的宏总是出现在标准模块中
3)记录的宏NEVER有一个变量,一个条件,一个循环或一个过程调用
从sub的语法,我们不能100%肯定地说一个宏被记录,因为我们总是可以一字一句地跟随并手动编写一个相同的函数。如果没有修改录制的宏,我们无法100%确定,因为人们可以手动更改值或索引。但是,是否有更多的线索(就像我列出的那样)来提高这种信心百分比?
否则,除了语法之外还有其他机制来确定这个吗?
答案 0 :(得分:0)
简短回答:否
我可以写一个sub来看完全就像录制的那样 - 所以你不会知道它们之间的区别。
同样,经验不足的用户可能会录制宏,然后将所需的位复制/粘贴到另一个宏中 - 因此它看起来仍然像录制的宏。
你可以拥有的最接近的事情是一个事件驱动的宏来跟踪VBProject中工作簿的任何变化 - 但是任何在VBE中工作的人都很可能拥有解决这个问题的技术诀窍。