有没有一个vba代码可以从excel中具有多个段落的单个单元格中解析出特定数据?

问题描述 投票:0回答:1

我需要一些帮助。我发现多个 vba 代码可以帮助提取单元格中的某些字符,但我遇到的问题是单个单元格有多个段落,我需要在其中解析出特定信息并将其与行的其余部分一起放入其自己的行中从需要解析的单元复制过来的数据。以下是单元格数据的示例。

ABC:123456
这是段落开始的地方,每个段落都不同,然后在末尾包含类似这样的内容。
更新:注释对齐:ABCD-123
更新:旧注释:ABC-0125

(注:有些段落是用多个制表符空格分隔的)

ABC:789012
这是段落开始的地方,每个段落都不同,然后在末尾包含类似这样的内容。
更新:注释对齐:ABCD-123
更新:旧注释:ABC-0125

更新:在每个段落上方都有类似 ABC:123456 的内容,这就是我需要解析为它自己的行的内容,“:”后面的数字也都不同。我不需要下面的文本/引用,只需要 3 个字母、冒号和后面的数字 (ABC:######)。有多个单元格包含 2 到 10 个这样的段落。原因我更喜欢使用vba代码,这样当数据上传时,excel会自动更新来解析数据。请帮忙?

我尝试了多个 vba 代码、公式和强力查询,但尝试仅获取段落的顶行非常耗时。尤其是当我的数据超过 10,000 时。

数据: Example data

excel vba powerquery vba7 vba6
1个回答
0
投票

您可以使用正则表达式。
这将得到以 ABC: 开头的值,然后是六位数字

    Dim regEx As New RegExp

    With regEx
        .Global = True
        .Pattern = "ABC:\d{6}"
    End With
    
    
    Set Matches = regEx.Execute(Range("A1").Value)
    ABC = Matches.Item(0).Value
© www.soinside.com 2019 - 2024. All rights reserved.