Vba 如何按大写字母或美元(';$';)符号拆分字符串

Vba 如何按大写字母或美元(';$';)符号拆分字符串,vba,Vba,我在一个单元格中有一个字符串,上面写着“不罚400加元” 我想将字符串拆分为:str1=“无惩罚”;str2=“无处罚”;str3=“$400” 我曾想过用大写字母和$符号来拆分字符串,但我不知道如何拆分 stri = "No penalty No penalty $400" temp = "" temp = stri For i = 1 To Len(temp) If Mid(temp, i, 1) = UCase(Mid(temp, i, 1)

我在一个单元格中有一个字符串,上面写着“不罚400加元”

我想将字符串拆分为:str1=“无惩罚”;str2=“无处罚”;str3=“$400”

我曾想过用大写字母和$符号来拆分字符串,但我不知道如何拆分

    stri = "No penalty No penalty $400"
    temp = ""
    temp = stri
    For i = 1 To Len(temp)
        If Mid(temp, i, 1) = UCase(Mid(temp, i, 1)) Then
            If i <> 1 Then
                str1 = Left(temp, i - 1) + Right(temp, Len(temp) - i + 1)
                i = i + 1
            End If
        End If
    Next i
    splitbycaps = temp
stri=“无罚款无罚款$400”
temp=“”
温度=stri
对于i=1至Len(温度)
如果Mid(temp,i,1)=UCase(Mid(temp,i,1)),则
如果我是1那么
str1=左(温度,i-1)+右(温度,透镜(温度)-i+1)
i=i+1
如果结束
如果结束
接下来我
splitbycaps=温度
我现在很迷路。

选项显式
子测试()
像线一样变暗
对象匹配
我想我会坚持多久
将()变暗为字符串
s=“无罚款无罚款$400”
使用CreateObject(“VBScript.RegExp”)
.Global=True
.MultiLine=True
.IgnoreCase=False
.Pattern=“[A-Z$][^A-Z$]*”
Set ocMatches=.Execute(s)
以
如果ocMatches.Count>0,则
重拨a(1到ocMatches.Count)
对于i=1至UBound(a)
a(i)=微调(ocMatches(i-1).值)
下一个
如果结束
端接头

非常感谢您。我也有类似的问题,字符串是“扣除后20%无罚款40%扣除后”,应该分为“无罚款”、“扣除后20%和扣除后40%”。我尝试将“$”替换为“%”,但它在%部分分裂。我怎样才能保留这些数字?@RobinScherbatsky try
(?:(?!\d+%)[\s\s])*