我对这篇文章很熟悉:How to Return a result from a VBA Function但是改变我的代码似乎没什么帮助。
我想在VBA中编写一个简单的函数,允许小写输入句子。我写了这个:
Private Function Converter(inputText As String) As String
Converter = LCase(inputText)
End Function
Sub test()
Dim new_output As String
new_output = Converter("Henk")
MsgBox (new_output)
End Sub
我尝试按照我在另一个stackoverflow帖子中找到的建议。我让我改变了这个:
Private Function Converter(inputText As String)
Set outputText = LCase(inputText)
End Function
Sub test()
Dim new_output As String
Set new_output = Converter("Henk")
MsgBox (new_output)
End Sub
但是,现在我收到一个需要对象的错误。为什么现在需要一个对象?我不明白......
答案 0 :(得分:0)
Set outputText = LCase(inputText)
{<1}}关键字是为 Object 数据类型保留的。与VB.NET不同,VBA中的Set
是基本数据类型。
所以你不要将变量String
变为字符串。完全删除代码的第二个版本。它没有意义。那&#34;建议&#34;可能是另一种情况。
修复您的第一个版本
1-将返回的结果分配给函数Set
的名称
2-明确指定返回类型为Converter
将是有益的。目前,String
始终嵌入Variant
,因此最好明确说明:
String