String vba预期数组
有人有递归替换的好解决方案吗? 例如,MsgBox返回的字符串中仍以逗号结尾:String vba预期数组,string,vba,String,Vba,有人有递归替换的好解决方案吗? 例如,MsgBox返回的字符串中仍以逗号结尾: Dim s As String s = "32,,,,,,,,,,,,,,,,23" MsgBox Replace(s, ",,", ",") 我只想要一个逗号 以下是我开发的代码,但它没有编译: Function RecursiveReplace(ByVal StartString As String, ByVal Find As String, ByVal Replace As String) As Stri
Dim s As String
s = "32,,,,,,,,,,,,,,,,23"
MsgBox Replace(s, ",,", ",")
我只想要一个逗号
以下是我开发的代码,但它没有编译:
Function RecursiveReplace(ByVal StartString As String, ByVal Find As String, ByVal Replace As String) As String
Dim s As String
s = Replace(StartString, Find, Replace)
t = StartString
Do While s <> t
t = s
s = Replace(StartString, Find, Replace)
Loop
RecursiveReplace = s
End Function
它说的是预期的数组
?您可以使用正则表达式。这表明了基本思想:
Function CondenseCommas(s As String) As String
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Pattern = ",+"
CondenseCommas = RegEx.Replace(s, ",")
End Function
测试结果如下:
Sub test()
Dim s As String
s = "32,,,,,,,,,,,,,,,,23"
MsgBox CondenseCommas(s)
End Sub
可以使用正则表达式。这表明了基本思想:
Function CondenseCommas(s As String) As String
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Pattern = ",+"
CondenseCommas = RegEx.Replace(s, ",")
End Function
测试结果如下:
Sub test()
Dim s As String
s = "32,,,,,,,,,,,,,,,,23"
MsgBox CondenseCommas(s)
End Sub
保存工作后,是否可以确认错误再次出现,关闭包括主机应用程序(Excel或您使用的任何应用程序)在内的所有内容,然后重新打开?Replace是一个函数名。可能VBA认为您试图调用函数作为参数。是否尝试使用其他参数名称?(我的意思是不要使用Find/Replace作为变量名)@JacobH是对的,忽略了这一点。不能有名为Replace.yes的变量!谢谢我的函数中也有一个错误,但这就是编译错误的原因……您能否确认在保存您的工作后错误再次出现,关闭所有内容,包括主机应用程序(Excel或任何您使用的应用程序),然后重新打开?Replace是一个函数名。可能VBA认为您试图调用函数作为参数。是否尝试使用其他参数名称?(我的意思是不要使用Find/Replace作为变量名)@JacobH是对的,忽略了这一点。不能有名为Replace.yes的变量!谢谢我的函数中也有一个错误,但这就是编译错误的原因。。。。