Excel VBA – 提取部分string以形成列表?

我试图从一些SQL代码中提取一些细节,以便列出一个列表 – 具体来说:我试图从一个case语句中提取名义代码,使人们可读的名义代码列表…我想知道是否有一种方法让VBA提取string部分,并输出一个列表?

这里的代码,例如,我们会说在单元格a1 …

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

我需要的是…

 P01200 P01201 P01205 etc 

你想使用分割function。

  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 

这将string分割成“作为分隔符”的部分。 然后循环遍历每个部分,跳过第一部分 – 当(' – 和最后两部分 – )'然后'和'DirSals'中的ProfitAndLoss.acno。 我使用了第二步,因为每个第二个切片是' – '。 每个部分输出到一个新的行,每次增加。