VBA:根据数据创建许多工作簿

时间:2014-02-05 12:24:33

标签: excel vba excel-vba

我在一个工作表Sheet_1中有一个大型数据集。数据集分为许多其他数据集(Excel中有一些分隔符,如空行或类似数据集)。

我必须收集此数据集中的数据,并根据数据创建许多新工作簿。例如,

COLA        COLB
Account #   Title
ACC1        12
ACC2        3
ACC2        3
----------------empty row divider ---------------
Account #   Title
ACC2        12
ACC3        3
ACC1        3
etc.

因此,我需要ACC1的新工作表,ACC2,ACC3和所有其他帐户#的工作表。实际上,帐号列表是在Sheet_2中预定义的。

此算法是否符合我的需求: 1)获取每个帐户的所有必要数据,并将它们保存在同一工作簿中,例如,在一个名为“结果”的工作表中,所有数据将按帐户排序

2)然后使用一些循环或范围或某些东西为每个帐户创建新工作簿并在那里复制/粘贴数据?

我是一名程序员,但相对来说是VBA的新手...所以我不确定这是可行的算法。

1 个答案:

答案 0 :(得分:0)

我会删除不需要的行分隔符和带有列标题的行,然后对左边的行进行排序,使col 1具有所有且仅有的帐号,然后为下一行直到最后一行,创建工作簿和复制范围,如:

' TODO: Determine intLastRow
curAcc = ""
' TODO: Add target workbook to store rows to
For i = 1 to intLastRow
  If ActiveSheet.Cells(i, 1) <> curAcc Then
    ' TODO: Save and close previous target workbook
    ' TODO: Add new target workbook
    curAcc = ActiveSheet.Cells(i, 1)
  End If
  ' TODO:Save active row from source workbook in target workbook
Next    
' Save and close last target workbook