2014-02-05 6 views
-1

У меня есть большой набор данных на одном листе Sheet_1. Набор данных разделен на множество других наборов данных (в Excel есть некоторые разделители, такие как пустая строка или аналогичная).VBA: создание многих книг на основе данных

Мне нужно собрать данные в этом наборе данных и создать множество новых рабочих книг на основе данных. Например,

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) получить все необходимые данные для каждой учетной записи и сохранять их wihin той же книги, например, в одном листе под названием «Результаты», где все данные будут отсортированы по счетам

2) затем используя некоторые циклы или диапазоны или что-то, создайте новые книги для каждой учетной записи и скопируйте/вставьте данные там?

Я программист, но относительно новый для VBA ... поэтому я не уверен, что это алгоритм, который будет работать.

ответ

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 
Смежные вопросы