忽略以特殊字符开头的字符串

时间:2019-07-28 06:58:55

标签: excel vba

我有一个函数可以将Excel注释框中的所有美元金额加起来。但是,我在注释框中写了一些注释,由于它不是以$ XX.xx开头,因此会导致错误。有一种方法可以忽略整个字符串(用enter分隔),也可以使“注释字符串” “ 特殊字符?例如,如果我以;开头的字符串然后忽略下一行之后的所有文本?

这是我当前的功能:

Function CleanString(strIn As String) As String
Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
        .Global = True
        .Pattern = "[^0-9" & Application.DecimalSeparator & "]"
        CleanString = .Replace(strIn, vbCrLf)
    End With
End Function

Function commentSum(cmt As Comment) As Double
Dim vDat As Variant
Dim i As Long
Dim res As Double

    vDat = Split(CleanString(cmt.Text), vbCrLf)
    For i = LBound(vDat) To UBound(vDat)
        If Len(vDat(i)) > 0 Then
            res = res + CDbl(vDat(i))
        End If
    Next i
    commentSum = res
End Function

1 个答案:

答案 0 :(得分:0)

替换:

If Len(vDat(i)) > 0 Then

使用方式:

If Len(vDat(i)) > 0 And Not Left(vDat(i), 1) = ";" Then

然后它将忽略以;开头的任何行