Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 VB中的布尔函数_Vba_Vb6 - Fatal编程技术网

Vba VB中的布尔函数

Vba VB中的布尔函数,vba,vb6,Vba,Vb6,我正在VB6应用程序中处理表单。我有一个问题,是否有人能帮忙 如果我创建一个这样的函数 Public Function CheckUser(userID as integer) as boolean CheckUser = False 'do stuff here CheckUser = True Exit Function 我正在从另一个过程(相同的表单)调用此函数-我可以在整个表单中使用Checkuser布尔值,还是仅用于此过程?基本上,在运行这个函数之后,我试图将一个布尔值

我正在VB6应用程序中处理表单。我有一个问题,是否有人能帮忙

如果我创建一个这样的函数

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

 CheckUser = True
 Exit Function

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

是的,如果您将CheckUser声明为全局,您可以这样做,否则由于本地in方法的原因,这是不可能的。。 这将帮助您如何声明全局变量。

如果将CheckUser声明为全局用户,则可以执行此操作,否则将无法执行此操作,因为本地in方法。。 这将帮助您如何声明全局变量。
这是一个范围问题:

一般规则是,变量只在声明它的结构的后代成员的作用域内。如果在函数中声明一个变量,就像这里通过VB的隐式函数变量所发生的那样,该变量只存在于该函数中

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


这是一个范围问题:

一般规则是,变量只在声明它的结构的后代成员的作用域内。如果在函数中声明一个变量,就像这里通过VB的隐式函数变量所发生的那样,该变量只存在于该函数中

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


首先。VB6是承载VBA语言的窗体包和应用程序对象(加上打印机和剪贴板对象)

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

在您的代码中,要继续使用它,您必须在每次使用它时都选中用户(“12345”),然后执行

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

因此,如果多次使用某个对象,请将其存储在变量中

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

通过将
Dim
放置在模块顶部,该模块中的所有程序均可使用。或者由
Public GetCurrentUser作为布尔值
访问所有过程。

首先。VB6是承载VBA语言的窗体包和应用程序对象(加上打印机和剪贴板对象)

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

在您的代码中,要继续使用它,您必须在每次使用它时都选中用户(“12345”),然后执行

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

因此,如果多次使用某个对象,请将其存储在变量中

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

通过将
Dim
放置在模块顶部,该模块中的所有程序均可使用。或者通过
Public GetCurrentUser作为布尔值
访问所有过程。

好的,谢谢,我想知道这是一个公共函数。谢谢你可以有一个USER_ID形式的属性,当设置它时,可以设置所说的public/global var,checkuserok谢谢,我想知道这是一个公共函数。谢谢你可以有一个USER_ID形式的属性,当设置它时可以设置公共/全局变量CheckUserYes。只要你用同样的形式来称呼它,它就会按原样工作。我想这不是你想要的。不,它不会在超空间中创建一些神奇的CheckUser变量。在编写时,每次需要值时都必须调用它。这听起来很像VBA问题,而不是VB6程序员会问的问题。@Bob77只是问而已。不必粗鲁。如果
CheckUser
总是正确的,为什么还要把它作为一个函数(你已经知道它是正确的)?让它成为一个方法,并调用它来执行您需要的操作……它并不总是正确的。我将其设置为false,若它通过了我所有的测试,那个么它将变为true,否则我将退出子问题。问题得到了回答。谢谢你的帮助!对只要你用同样的形式来称呼它,它就会按原样工作。我想这不是你想要的。不,它不会在超空间中创建一些神奇的CheckUser变量。在编写时,每次需要值时都必须调用它。这听起来很像VBA问题,而不是VB6程序员会问的问题。@Bob77只是问而已。不必粗鲁。如果
CheckUser
总是正确的,为什么还要把它作为一个函数(你已经知道它是正确的)?让它成为一个方法,并调用它来执行您需要的操作……它并不总是正确的。我将其设置为false,若它通过了我所有的测试,那个么它将变为true,否则我将退出子问题。问题得到了回答。谢谢你的帮助!与使用globals everywhere Encient增加的维护问题相比,性能差异可以忽略不计。当您最小化“副作用”代码并保持代码自包含时,维护代码会更好。我并不是说永远不要使用globals,但在大多数情况下,函数调用对于可维护性来说要好得多。与使用globals的额外维护问题相比,性能差异可以忽略不计。当您最小化“副作用”代码并保持代码自包含时,维护代码会更好。我不是说永远不要使用globals,而是说在大调中