VB中的布尔函数

时间:2016-08-12 17:36:06

标签: vba vb6

我正在使用VB6应用程序中的表单。如果有人可以提供帮助,我有一个问题。

如果我创建这样的函数......

 Public Function CheckUser(userID as integer) as boolean
 CheckUser = False
 'do stuff here 

 CheckUser = True
 Exit Function

我从另一个过程(相同的形式)调用此函数 - 我可以在整个表单中使用Checkuser布尔值,还是仅用于此过程?基本上我在运行这个函数后试图将一个布尔值返回给我的程序 - 而且实际上并不想声明一个新的模块变量并且那样。试图保持整洁。

3 个答案:

答案 0 :(得分:1)

是的,如果您将CheckUser声明为全局,则可以,否则因为local in method而无法实现。 这将帮助您如何声明全局变量。 how to declare global variable

答案 1 :(得分:1)

这是范围

的问题

https://support.microsoft.com/en-ca/kb/141693

一般规则是变量仅在声明它的结构的后代成员的范围内。如果在函数中声明一个变量,就像通过VB的隐式函数变量一样,该变量只存在于该函数中。

访问修饰符是公开的这一事实与它无关。您可以在此处阅读有关访问修饰符的更多信息:

What is the difference between Dim, Global, Public, and Private as Modular Field Access Modifiers?

答案 2 :(得分:1)

首先。 VB6是托管VBA语言的表单包和应用程序对象(加上打印机和剪贴板对象)。

在编程中,有函数(对象的方法和属性也是函数)和变量。

在您的代码中继续使用它,每次使用时都必须If CheckUser("12345") then

但函数调用很慢。必须将参数放在堆栈上,在堆栈上创建局部变量,将返回地址放在堆栈上,然后调用可能不在CPU缓存中的内存位置。

因此,如果多次使用某些内容,请将其存储在变量中。

Dim GetCurrentUser As Boolean
GetCurrentUser=CheckUser("12345")

通过将Dim放在模块的顶部,该模块中的所有过程都可以使用它。或Public GetCurrentUser As Boolean所有要访问的程序。