Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用公共变量停止VBA代码的执行_Vba_Excel - Fatal编程技术网

如何使用公共变量停止VBA代码的执行

如何使用公共变量停止VBA代码的执行,vba,excel,Vba,Excel,这是为了破解任何VBA项目的密码而编写的。说明了即使在执行VBA模块后,公共变量仍保留其值。是否可以修改以下VBA代码(存储在模块级或类级)以防止执行(上述VBA代码)破坏项目密码- Public Dim HookBytes(0 To 5) As Byte Dim OriginBytes(0 To 5) As Byte Dim pFunc As LongPtr Dim Flag As Boolean ReDim HookBytes(0) As Byte ReDim OriginBytes(0)

这是为了破解任何VBA项目的密码而编写的。说明了即使在执行VBA模块后,公共变量仍保留其值。是否可以修改以下VBA代码(存储在模块级或类级)以防止执行(上述VBA代码)破坏项目密码-

Public Dim HookBytes(0 To 5) As Byte
Dim OriginBytes(0 To 5) As Byte
Dim pFunc As LongPtr
Dim Flag As Boolean

ReDim HookBytes(0) As Byte
ReDim OriginBytes(0) As Byte
pFunc = 9223372036854775807 ' https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/longptr-data-type
Flag = True

您提供的“密码破坏者”包含与要存储为公共变量的声明相同的声明

您基本上希望在代码开始之前“Hi-Jack”这些变量

唯一的问题是,一旦例程运行,一旦在
Sub
中声明,公开声明的变量现在将成为例程本身范围内的过程变量。只要过程中的
Dim
语句声明了相同的变量名,公共变量基本上就会被忽略

从本质上讲,您想要用来停止密码破译器的方法将无法正常工作