Excel VBA - 提取字符串的一部分以形成列表?

时间:2016-02-04 11:06:44

标签: excel vba excel-vba

我试图从一些SQL代码中提取一些细节以便制作一个列表 - 具体来说:我正试图从case语句中提取名义代码,以制作一个人类可读的名义代码列表......我我想知道VBA是否有办法提取字符串部分并输出一个列表?

这是代码,例如,我们会说在单元格a1 ...

when ProfitAndLoss.acno in ('P01200','P01201','P01205','P01206','P01210','P01211','P01220','P01221','P01225','P01226','P01230','P01231','P01235')then 'DirSals'

我需要的是......

P01200
P01201
P01205
etc

1 个答案:

答案 0 :(得分:1)

您想使用分割功能。

    Option Explicit

    Sub makeList()
    Dim parts As Variant
    Dim nextLine As Long
    Dim i As Long

    nextLine = 2
    parts = Split(Cells(1, 1).Value, "'")
    For i = LBound(parts) + 1 To UBound(parts) - 2 Step 2
    Cells(nextLine, 1).Value = parts(i)
    nextLine = nextLine + 1

    Next i

    End Sub

将字符串拆分为“'作为分隔符。然后它循环遍历每个部分,跳过第一部分 - 当ProfitAndLoss.acno在(' - 和最后两部分 - ')然后'和' DirSals'。我使用了第二步,因为每个第二个切片都是' - '。 每个部分都输出到一个新行,每次都递增。