我正在使用 VBA。我写了一个用户定义函数,它接受一个string
,处理它并返回一个清理过的string
. 我不确定它有什么问题。我无法调用它并要求它处理我的字符串并返回它。我认为我定义或返回它的方式有误。
Public Function ProcessString(input_string As String) As String
' The temp string used throughout the function
Dim temp_string As String
For i = 1 To Len(input_string)
temp_string = Mid(input_string, i, 1)
If temp_string Like "[A-Z, a-z, 0-9, :, -]" Then
return_string = return_string & temp_string
End If
Next i
return_string = Mid(return_string, 1, (Len(return_string) - 1))
ProcessString = return_string & ", "
End Function
我像这样使用这个功能
Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)
姓氏是一个字符串变量,通常看起来像这样Lastname*****
,我正在尝试删除它后面的所有星星。Lastname
让它在没有星星的情况下返回。
Compile error: ByRef arugment type mismatch
当我尝试运行它时收到了。我正在使用带有 Office 2003 的 Windows XP。
编辑:我添加了我拥有的代码的基本结构,我有大约 20 行类似的代码。为我需要的每个领域做同样的事情。
Private Sub CommandButton2_Click()
' In my original production code I have a chain of these
' Like this Dim last_name, first_name, street, apt, city, state, zip As String
Dim last_name As String
' I get the last name from a fixed position of my file. Because I am
' processing it from another source which I copied and pasted into excel
last_name = Mid(Range("A4").Value, 20, 13)
' Insert the data into the corresponding fields in the database worksheet
Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)