gpt4 book ai didi

string - VBA Access 参数传递值

转载 作者:行者123 更新时间:2023-12-02 08:19:56 24 4
gpt4 key购买 nike

Access 2013

我正在调用一个公式来修改一个字符串,它正在更改父子中的值。

例子:

Debug.Print Str 'Hello World my name is bob
BOBexists = InStringChceck(Str,"bob")
Debug.Print Str 'HELLO WORLD MY NAME IS BOB
Debug.Print BOBexists 'TRUE

我以前在 Excel VBA 中使用过这个函数 InStringCheck(这只是一个例子,我所有的字符串工具现在都在做同样的事情,我不知道为什么)

Function InStringCheck(Phrase as string, Term as string) as Boolean
Phrase = UCase(Phrase)
Term = UCase(Term)
if instr(1, Phrase, Term) then InStringCheck = True else InStringCheck = False
end function

在我的几个函数中,我操纵输入变量以得出一个解决方案,但我不希望这些操纵在函数之外持续存在,除非我将它们传递回来——有些是如何传递的,但它们不作为公共(public)变量变暗

最佳答案

VBA 参数通过引用隐式传递 (ByRef)。这意味着您传递的是对值的引用,而不是值本身:在过程中改变该值将导致调用代码可以看到该改变的值。

这通常用作从函数/过程返回多个值的技巧:

Public Sub DoSomething(ByVal inValue1 As Integer, ByRef outResult1 As Integer, ...)

你有两个选择:

  • 按值传递参数(ByVal)
  • 引入局部变量并改变它们而不是改变参数(见鬼,显式传递参数 ByRef)

如果您在项目中多次出现隐式传递 ByRef 的参数,则在任何地方修复它们很容易变得乏味。用Rubberduck您可以轻松找到所有事件、导航到那里并应用适当的修复:

Rubberduck inspection results

Disclaimer: I'm heavily involved in the Rubberduck project.

关于string - VBA Access 参数传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com