Excel 文本到列:按值中的第一个数字拆分

Excel 文本到列:按值中的第一个数字拆分,excel,split,excel-2010,vba,Excel,Split,Excel 2010,Vba,我有一列,大约60个单元格,它们的值或长度不同。每个或至少大多数值的值中都有一个数字字符。我想将列单元格拆分为更多的列,这通常是我使用excel的“tekst to columns”功能所做的 但此函数没有在第一个数字字符处拆分值的高级选项。基于空格、逗号等进行拆分是可能的,但这对我没有帮助 有没有办法在单元格值的第一个数字处将单元格分成两列 我已经研究了许多其他问题,但没有一个问题或其他互联网论坛能帮助我在单元格值的第一个数字上拆分值 谢谢你的回答。如果字符串包含一个数字,则此例程工作。我将测

我有一列,大约60个单元格,它们的值或长度不同。每个或至少大多数值的值中都有一个数字字符。我想将列单元格拆分为更多的列,这通常是我使用excel的“tekst to columns”功能所做的

但此函数没有在第一个数字字符处拆分值的高级选项。基于空格、逗号等进行拆分是可能的,但这对我没有帮助

有没有办法在单元格值的第一个数字处将单元格分成两列

我已经研究了许多其他问题,但没有一个问题或其他互联网论坛能帮助我在单元格值的第一个数字上拆分值

谢谢你的回答。如果字符串包含一个数字,则此例程工作。我将测试字符串更改为firstpart323secondpart。 然后part1返回“firstpart32”,part2返回secondpart

我试图理解此代码中发生了什么,如果我错了,请纠正我:

首先,确定字符串的长度

其次,检查字符串中的每个位置是否为数字。但这张支票是丹从右到左的吗?所以在第一部分323第二部分的情况下:长度是22。 然后isnumeric检查从1到22的每个位置是否为数字,并在找到数字时停止

如果是,则第1部分是值i之前的tekst,其中i是字符串中从右到左找到数字的第一个位置

第二部分是右边同一位置的字符串

然而,我正在寻找一个例程,它可以从左到右找到第一个位置,或者从右到左找到最后一个位置,其中一个数字是

因此,我现在更改了例程,只需将for I=1调整为行:

这几乎可以完美地工作,除了少数单元格在值中有多个数字组合,如:soup 10g 20box。但由于这些只是少数,我可以手动调整它们

谢谢

Sub test()
testString = "firstpart3secondpart"
For i = 1 To Len(testString)
    If IsNumeric(Mid(testString, i, 1)) Then
        part1 = Left(testString, i - 1)
        part2 = (Right(testString, Len(testString) - i))
    End If
Next i
MsgBox (part1)
MsgBox (part2)
End Sub
在你的循环中使用类似的东西

Sub test()
testString = "firstpart3secondpart"
For i = 1 To Len(testString)
    If IsNumeric(Mid(testString, i, 1)) Then
        part1 = Left(testString, i - 1)
        part2 = (Right(testString, Len(testString) - i))
    End If
Next i
MsgBox (part1)
MsgBox (part2)
End Sub