解析为新行的单个单元格中的逗号分隔值

时间:2014-01-21 22:50:32

标签: excel vba

我提前道歉,因为我是VBA新手。我已经审查了与我的情况相似的所有帖子,但未能提出解决方案。我有一个包含9列(A:I)和105,000行的电子表格。列F是包含代码的字段。我可以在那里有一个代码或最多11个代码用逗号分隔,然后用空格分隔。我需要将来自F列的多个代码分解为它们自己的行,其中所有其他列数据都是从原始行复制的。为简单起见,我将采样3列。抱歉格式化。不知道如何把它变成一张桌子。

  1. FISCAL DATE - CPT CODES - 服务计数
  2. 10/1/2013 - 36415 - 851
  3. 9/1/2013 - 80051,82565,82947,84520 - 220
  4. 10/1 / 2013-64523,12214(2) - 110
  5. 10/1/2013 - 错误 - 12
  6. 对于CPT代码值,某些行可能具有 ERROR ,或者也可能为空。这是我收到数据的方式。

    我希望输出看起来像这样。 “ - ”仅用于本文的目的,并不是数据中的实际内容。

    1. FISCAL DATE - CPT CODES - 服务计数
    2. 10/1/2013 - 36415 - 851
    3. 9/1/2013 - 80051 - 220
    4. 9/1/2013 - 82565 - 220
    5. 9/1/2013 - 82947 - 220
    6. 9/1/2013 - 84520 - 220
    7. 10/1 / 2013-64523 - 110
    8. 10/1 / 2013- 12214(2) - 110
    9. 10/1/2013 - 错误 - 12
    10. 请记住,总共有9列,而CPT代码字段是F列。

      提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可能不是我想要的最干净的方式,但它有效。我要感谢这段代码的另一篇文章。此外,我为不知道如何格式化我的帖子而道歉。

Sub Macro1() “ 'Macro1宏 “

”     Application.ScreenUpdating = False     列( “E:E”)选择。     Selection.Find(What:=“,”,After:= ActiveCell,LookIn:= xlFormulas,LookAt _         := xlPart,SearchOrder:= xlByRows,SearchDirection:= xlNext,MatchCase:= _         False,SearchFormat:= False)。激活

待办事项     昏暗的     Dim Cels很长,我很长     取消=真     ans =拆分(ActiveCell,“,”)     Cels = UBound(ans)     ActiveCell.Offset(1).Resize(Cels).EntireRow.Insert Shift:= xlDown     行(ActiveCell.Row)。复制单元格(ActiveCell.Row + 1,“A”)。调整大小(Cels)     对于i = 0到Cels         ActiveCell.Offset(i)=修剪$(ans(i))     下一步

On Error GoTo Err     Selection.FindNext(后:= ActiveCell).Activate 环

Application.ScreenUpdating = True

错误: MsgBox“Macro Completed”,vbOKOnly

End Sub