我今天读了很多关于功能的内容,他们似乎都在处理数学/数字。我正在尝试使用一个返回字符串并将其作为“主要子”中的变量捕获的函数,但我无法使其工作。谁能指出我做错了什么?
例如:
功能:
Public Function Test(var) As Variant
Bar = var & "World"
MsgBox Bar
End Function
子:
Public Bar As Variant
Public Z As Variant
Sub testing()
Call Test("Hello") ' This displays "HelloWorld" from MsgBox in Function
Test ("Hello") ' This displays "HelloWorld" from MsgBox in Function
Z = Test("Hello") ' This displays "HelloWorld" from MsgBox in Function
MsgBox Z ' This displays an empty MsgBox :*(
End Sub
如果希望函数返回一个值,请填充函数变量并在main子函数中返回,如下所示
Public Function Test(var As String) As String
Test = var & " World"
End Function
Sub testing()
returnstr = Test("Hello")
MsgBox returnstr
End Sub
您没有从函数返回值。此外,函数应仅用于返回值,而不是用于执行更改事物(变量除外)或显示弹出窗口的操作。使用全局变量并将变量传递给函数也会让人感到困惑。您通常将局部变量传递给函数。这是一个更清晰的例子(首先是你的主要功能,正常惯例):
Sub Testing()
Dim Z As String
Z = Test("Hello")
MsgBox Z
MsgBox Test("Hello")
End Sub
Public Function Test(ByRef var As String) As String
Test = var & "World"
End Function