我的VBA代码拆分文本和数字不起作用

时间:2019-05-06 09:41:06

标签: vba

我已经编写了这段代码来在excel中拆分文本和数字,但是每当我运行它时,它就行不通了

  Public Function Strip(ByVal x As String, LeaveNums As Boolean) As Variant
   Dim y As String, z As String, n As Long
   For n = 1 To Len(x)
   y = Mid(x, n, 1)
   If LeaveNums = False Then
       If y Like "[A-Za-z ]" Then z = z & y 'False keeps Letters and spaces only
   Else
       If y Like "[0-9. ]" Then z = z & y   'True keeps Numbers and decimal points
   End If
   Next n
Strip = Trim(z)
End Function

1 个答案:

答案 0 :(得分:0)

您编写(复制了)Function,而不是子例程。函数通常用于重复过程,并返回(如果编写正确)值。因此,您可以从子例程中调用函数,然后对函数返回的值进行处理。该函数使用xLeaveNums参数执行某些操作,就像公式一样。
实际上,您可以编写函数并将其用作Excel工作表中的公式。

您可以按以下方式调用此函数(注意,这是一个示例)

Sub Usefunction()

rslt = Strip("test this 1.01", True)

MsgBox rslt

End Sub

这将返回“测试此”。如果将布尔值设置为False,则该函数将返回“ 1.01”。