Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VBA] Сравнение 2-х данных книг


Автор: zaika 12.12.2006, 22:58
Привет ребят, у меня небольшая проблема, помогите пожалуйста решить задачу, мучаюсь, никак не могу сделать.... очень нужно, буду очень признательна ;)

Даны две рабочие, в каждой из содержится по несколько листов. Структура рабочих листов и их количество не ясно. Требуется разработать программу, которая автоматически сравнивает данные книги в две стадии:
 1)По колличеству, 2) По структуре каждого из листов.
При этом программа рзрабатывается в третьей рабочей книги. Предусмотреть отчет, который должен находиться в этой рабочей книге и в котором указано: одинаковы сравниваемые рабочие книги или нет ( при этом отчет выдается в двух видах: сравнение по кол-ву и сравнение листов по значению)  
   ПОЖАЛУЙСТА!

Автор: Genyaa 13.12.2006, 11:54
Цитата(zaika @ 12.12.2006,  23:58)

Даны две рабочие, в каждой из содержится по несколько листов. Структура рабочих листов и их количество не ясно. Требуется разработать программу, которая автоматически сравнивает данные книги в две стадии:
...
   ПОЖАЛУЙСТА!

Отчет о сравнении книг по количеству листов - это понятно... Но в каком виде сравнение листов по структуре/значению? Как Вы сами себе это представляете?

На примере... Допустим, что количество листов совпало (а если не совпало - нужно ли продолжать сравнение?)...
1. Что должно быть в отчете, если имена листов не совпадают? И нужно ли продолжать пытаться сравнивать, если нет совпадения?
2. Если продолжается сравнение... как сравнивать несовпадющие по именам листы? Нужно ли сравнивать только совпадающие по именам листы? Если не только, то в каком порядке?
3. Если продолжается сравнение... что подразумевается под структурой? Заголовки списков? Именованные области? Область (размер, адрес, имя) автофильтра? Области (адреса) сгруппированных столбцов и/или строк? Внедренные объекты (их размеры, имена, типы и т.д.)? Или проверяется только совпадение значений ячеек от ячейки к ячейке?
4. В каком именно виде должен быть представлен отчет? (Варианты: должны быть представлены копии всех отличающихся листов с выделением отличающихся мест, объектов, элементов, или перечислены адреса и значения отличающихся ячеек, объектов, элементов списком или еще как?)

Честно говоря, эта "небольшая проблема" не на полчаса... 

По количеству листов - см. приложение. - можно использовать для затравки... 

Автор: zaika 13.12.2006, 12:27
Так как в данной задаче сравнение рабочих книг идет в две стадии , т.е. общее сравнение книг - по колличеству рабочих листов и детальное сравнение - позначению ячеек, находящихся в рабочих листах, то можно выделить несколько основных параметров:
1) Номер строки, в которой будет указано колличество листов каждой рабочей книге- amountL
2) Номер столбца, в котором будет указано
Тут дело не в листах... Нужно знести в листы какую-либл информацию и уже ее сравнивать, допустим взять  листы в одной и в др. книге занести туда какую либо информацию, ну типа наименование товара и его цена, и сравнить эти данные по кол-ву листов и по содержимому, если все совпадает, то сравнение завершить, и занести данные в отчет, а если нет, то сравнить содержимое по значению, и по формату, и также данные занести в отчет...  Я не уверена в компетентности своего ответа, заранее извиняюсь... просто безисходная ситуация(((

Добавлено @ 12:29 
В каком виде представлять отчет, значения не имеет, как удобнее...

Автор: Genyaa 13.12.2006, 19:15
Если бы Вы могли ответить на каждый из заданных мной ранее вопросов, то это была бы ощутимая помощь в том, чтобы понять, что собственно нужно будет делать на том или ином этапе сравнения.

Автор: zaika 14.12.2006, 23:14
Наверное не получается, да?

Автор: zaika 14.12.2006, 23:52
А вы ни могли бы дать хоть какие нибудь коментарии к тому модулю в VBA который вы написали для сравнения листов, а то я никак не могу разобраться, пожалуйсто)))?

Автор: Genyaa 15.12.2006, 07:57
Я готовлю Вам ответ. Немного подождите.

Автор: zaika 19.12.2006, 00:34
Большое спасибо!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)