VBA:基于数据创建多个工作簿

VBA:基于数据创建多个工作簿,vba,excel,Vba,Excel,我在一张工作表中有一个大数据集工作表1。数据集被划分为许多其他数据集(Excel中有一些分隔符,如空行或类似的分隔符) 我必须收集这个数据集中的数据,并根据数据创建许多新的工作手册。比如说, COLA COLB Account # Title ACC1 12 ACC2 3 ACC2 3 ----------------empty row divider --------------- Account # Title ACC2

我在一张工作表中有一个大数据集
工作表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和所有其他账户的工作表。实际上,帐号列表是在
表2中预定义的

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

2) 然后使用一些循环或范围或其他方法为每个帐户创建新的工作簿,并在其中复制/粘贴数据


我是一名程序员,但对VBA比较陌生。。。因此,我不确定这是否是可行的算法。

我会去掉不需要的行分隔符和带有列标题的行,然后对剩余行进行排序,以便第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
“TODO:确定intLastRow
curAcc=“”
'TODO:添加要将行存储到的目标工作簿
对于i=1到intLastRow
如果ActiveSheet.Cells(i,1)curAcc那么
'TODO:保存并关闭上一个目标工作簿
'待办事项:添加新的目标工作簿
curAcc=ActiveSheet.Cells(i,1)
如果结束
'TODO:将源工作簿中的活动行保存到目标工作簿中
下一个
'保存并关闭上一个目标工作簿