我想将输入(通过输入框输入)拆分为字符串

时间:2016-11-12 15:22:07

标签: excel-vba vba excel

我有一种情况,我想要一个输入框,其中输入了一个字符串,如“C123q23C456a45”。模式将保持不变,因此它将始终为C,3个数字,A-z,数字(此数字可以是2或3位数)。 我想用C语言拆分这个字符串,所以上面的例子将分成: C456a45和C123q23。此输出显示在消息框中,以C123的形式有23个q和c456有45个。 如果这是有道理的。

我该如何处理?

谢谢你欣赏它

2 个答案:

答案 0 :(得分:1)

如果您可以在没有VBA的情况下继续这样做,那么如果您想要在A1中拆分字符串,则可以使用这些公式:

=LEFT(A1;FIND("C";A1;FIND("C";A1)+2)-1)

C123q23
=RIGHT(A1;LEN(A1)-LEN(LEFT(A1;FIND("C";A1;FIND("C";A1)+2)-1)))

C456a45

**更新**

Sub Macro1()
Dim strFirstSplitA As String, str1A As String, str2A As String
Dim strA As String, strAA As String, strAAA As String
Dim str1B As String, strB As String, strBB As String, strBBB As String
Dim strMsgBoxA As String, strMsgBoxB As String

str1A = InStr(1, Range("A1"), "C") + 2
str2A = InStr(str1A, Range("A1"), "C")                              '                           FIND("C";A1)+2)-1)
strFirstSplitA = Left(Range("A1"), str2A - 1)

strA = Left(strFirstSplitA, 4)
strAA = Right(strFirstSplitA, Len(strFirstSplitA) - 4)
strAAA = Right(strAA, Len(strAA) - Len(Left(strAA, 1)))
strMsgBoxA = strA & " has " & strAAA & " of " & Left(strAA, 1)
' C123 has 23 of q

str1B = Right(Range("A1"), Len(Range("A1")) - Len(strFirstSplitA))

strB = Left(str1B, 4)
strBB = Right(str1B, Len(str1B) - 4)
strBBB = Right(strBB, Len(strBB) - Len(Left(strBB, 1)))
strMsgBoxB = strB & " has " & strBBB & " of " & Left(strBB, 1)
' c456 has 45 of a

MsgBox strMsgBoxA & " and " & strMsgBoxB

End Sub

答案 1 :(得分:0)

未经过测试,但是这样:

a = Split("C123q23C456a45", "C")

For i = 1 To Ubound(a)
    Debug.Print Left$(a(i), 3), Mid$(a(i), 5)
Next