从VBA函数返回一个字符串

3
我正在跟着教程学习,但在hello world示例函数中遇到了编译错误。
这里出了什么问题?

enter image description here

这是我尝试的代码:

Function hi()
    hi = "hello world"
End Function`

编辑:建议的声明没有帮助

在此输入图像描述

编辑:越来越接近了。当调用“hi()”时,括号似乎是一个问题

在此输入图像描述

你需要声明 hi,否则会出现错误提示。为什么要使用 Function?而不是普通的 Sub - Shai Rado
谢谢Shai Rado。我还没有为特定的原因选择函数或子程序。首先,我需要找出它们是如何工作的:(请查看编辑后的原始帖子,我添加了两张我的错误图片。 - user1805743
1
使用括号调用函数将返回一个对象,因此期望使用 s=hi() 或者直接调用 hi 来运行。 - Nathan_Sav
谢谢,我想就这样吧。很抱歉让您浪费时间在这种事情上。 - user1805743
1
如果你想从即时窗格调用函数并打印输出,那么你需要这样调用它:? hi()(与 Debug.Print hi() 相同)。 - Tim Williams
1个回答

7
您可以使用两种方式来实现您的“Hello World”示例。 选项1:对于您的示例而言,这是一种简单且足够好的方法,使用常规的Sub
Sub Hi_()

Dim HiStr   As String

HiStr = "Hello World"
MsgBox HiStr

End Sub

选项2:使用具有“Hello World”示例的 Function
Function Hi(TestHi As String) As String

' Input: this function receives a string as a parameter
' Output: returns a string

Hi = "Test Function with " & TestHi

End Function

现在我们需要一个 Sub 来测试这个 Function:
Sub Test_Hi_Function()

Dim TstHiFunc As String

' send "Hello World" to Function Hi as a parameter
' TstHiFunc gets the returned string result 
TstHiFunc = Hi("Hello World")

' for debug only
MsgBox TstHiFunc

End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接