Excel 使用分隔符“拆分字符串”;1.“&引用;2.“;等等

Excel 使用分隔符“拆分字符串”;1.“&引用;2.“;等等,excel,vba,vb6,Excel,Vba,Vb6,我有一根绳子 “1.这应该是一个原因。2.这是一个解决方案。要查找更多信息吗?3.代码是234123.4.解决方案结束。” 我想把它分成n个数组,用“1.这应该是原因”,然后“2.这是一个解决方案。想寻找更多吗?”然后“3.代码是234123。”等等 我试过的代码如下: Dim myString As String myString = "1.This should be a cause.2.this is a solution.Want to look for more? 3.code

我有一根绳子

“1.这应该是一个原因。2.这是一个解决方案。要查找更多信息吗?3.代码是234123.4.解决方案结束。”

我想把它分成n个数组,用“1.这应该是原因”,然后“2.这是一个解决方案。想寻找更多吗?”然后“3.代码是234123。”等等

我试过的代码如下:

Dim myString As String
myString = "1.This should be a cause.2.this is a solution.Want to look for more?    3.code is 234123.4.end of solution."

Dim solArr As Variant
Dim i As Integer
Dim solText As String

solArr = Split(myString, ".")
For i = 2 To UBound(solArr)
    solText = Mid(myString, InStr(1, myString, i - 1 & "."), InStr(1, myString, i & ".") - 1)

Next

虽然对于我能想到的所有解决方案,如果使用多次相同的数字+点(其中一个是分隔符),您可能会遇到麻烦,但您仍然可以使用类似的方法:

Sub test()

  Dim myString As String
  myString = "1.This should be a cause.2.this is a solution.Want to look for more?    3.code is 234123.4.end of solution."

  Dim i As Long
  i = 2

  myString = Mid(Trim(myString), 3)

  While InStr(myString, i & ".")
    myString = Replace(myString, i & ".", "///", 1, 1)
    i = i + 1
  Wend

  Dim solArr As Variant

  solArr = Split(myString, "///")

  For i = 0 To UBound(solArr)
    solArr(i) = i + 1 & ". " & Trim(solArr(i))
  Next

End Sub

你的问题是什么?我想拆分我的字符串,以便将其用作1。这应该是一个原因,2.这是一个解决方案。想要寻找更多吗?等等……如何知道
234123.
不算作
3.
?事实上,我正在寻找一个更好的代码,以满足我目前的需求……任何建议都将不胜感激。@jitendradeshmukh但对于
1这样的东西,它将失败。这不起作用。2。正如你在第4点所想。3.如果你明白我的意思。4.也适用于其他情况。
@DirkReichel如何使用每秒
作为分隔符进行拆分。我知道如果文本中有注释
,这将失败。@Santosh是一个坏例子
1。案文2。关于3的一些其他文本。这会导致3级错误。代码的一部分。3.这就是这个极端例子的问题所在。3.3.也可以包含3个。导致其他错误。3.只是把一切都搞砸了。4.因此,在这个例子中,即使是我也不知道该在哪里拆分。
至少如果我是一台笨机器,我就不知道了:PYou可以通过忽略
数字来减少不匹配的机会。
其中
数字
不是
lastNumber+1
@alexk。我的例子呢?(注释)第三部分的切割位置?计算机不能用逻辑(根据常识)来做这件事。您需要为代码应用“规则”,以便它知道该做什么。但是,即使您检查
i
前面的字符是否为非数字字符,在我的示例中也会失败。。。我提供的代码只是第一次找到它(即使是在前面的
I
)。。。作为一个例子开始,但有一个“不失败”的代码是不可能的,我的眼睛。。。此外,我的代码很糟糕,因为字符串可能从一开始就包含我的占位符:/