使用函数清理VBA中的数据

时间:2017-06-11 12:52:13

标签: vba

我对这篇文章很熟悉: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

但是,现在我收到一个需要对象的错误。为什么现在需要一个对象?我不明白......

1 个答案:

答案 0 :(得分:0)

Set outputText = LCase(inputText)

{<1}}关键字是为 Object 数据类型保留的。与VB.NET不同,VBA中的Set基本数据类型。

所以你不要将变量String变为字符串。完全删除代码的第二个版本。它没有意义。那&#34;建议&#34;可能是另一种情况。

修复您的第一个版本

1-将返回的结果分配给函数Set的名称 2-明确指定返回类型为Converter将是有益的。目前,String始终嵌入Variant,因此最好明确说明:

String