0

对于这里的所有计算机专家来说,这可能是一件容易的事!我想在 EXCEL 文本框中提取一串字符。数据集有点乱,有空格、字符和其他我不需要的文本。例如:

我需要从“ABC ABCABC12345D1”中取出 ABC12345D1

                             "ABC,ABCABC12345D1"
                             "KOhn!ABCABC12345D1"
                             "ABCABC12345D2 ABCABC12345D1"
                             "ABCABC12345D1ABCABC12345D1"
                             "MCDONALDABCABC12345D1"

但这只是我必须提取的标识符之一。我希望有一个公式可以拖动到列的其余部分。

因此,ABCABC12345D1 由

_ _ _ 前三个字符是一个ID

_ _ _ _ _ 第二部分是位置标签

_ _ 最少的过去是它是打开还是关闭(如果无法提取它,我可以活下去。

现在我尝试取正确的 8 或 10 个字符,并取出所有空间,但有没有更清晰的方法来提取这些数据?

4

1 回答 1

0

正则表达式?

Function Regex(Cell)
    Dim RE As Object

    Set RE = CreateObject("vbscript.regexp")

    RE.Pattern = "(\w{6}\d{5}\w\d)"
    RE.Global = True
    RE.IgnoreCase = True
    Set Matches = RE.Execute(Cell) 

    For Each res In Matches
        Regex = Regex & "," & res
    Next res
    Regex = Mid(Regex, 2)
End Function

使用 ALT + F11 打开 VBA 编辑器。
Insert -> Module Copy 将上面的代码粘贴到模块窗口中。关闭 VBA 编辑器。

在 Excel 表中写入=Regex(A1)以激活该功能。

在此处输入图像描述

于 2016-11-18T19:40:27.407 回答