|
![]() |
#1 |
Участник
|
Alexanderis.ua
А Вас не удивлят сама постановка вопроса в данной теме? Если с именованными ячейками все так замечательно, то зачем вообще проверять факт их существования?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#2 |
Участник
|
Мы около трех лет назад написали машинку :
Опрашиваем шаблон Excel какие именованные ячейки есть. Потом алгорим выводит в данные ячейки нужные значения Имеем один универсальный алгоритм на любое количество отчетов. Это дало возможность не программерам каждый раз следить за отчетами, а самим пользователям корректировать шаблоны как им надо. Они просто ставят оговоренные метки в нужное место шаблона. Есть определенный алгоритм разделения меток шапки и табличной части. Для тех кто будет это использовать хочу предупредить, что есть однако одна неприятность при удаление именованных ячеек в шаблоне. Они не удаляются из списка ActiveWorkbook.Names и при опросе передаются в Axapta, но при выводе данных Axapta вываливается с ошибкой. На данный момент решили данную проблему созданием VBA макроса, обеспечивающего удаление "неправильных" именнованных ячеек из ActiveWorkbook.Names |
|
![]() |
#3 |
Administrator
|
Цитата:
Сообщение от grishin
![]() Имеем один универсальный алгоритм на любое количество отчетов.
Это дало возможность не программерам каждый раз следить за отчетами, а самим пользователям корректировать шаблоны как им надо. Они просто ставят оговоренные метки в нужное место шаблона. Есть определенный алгоритм разделения меток шапки и табличной части. Из плюсов такого подхода:
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 21.01.2013 в 18:02. |
|
![]() |
#4 |
Участник
|
Цитата:
![]() Я не говорил, что все замечательно. Моя мысль проста - иногда использование именованых ячеек оправдано. Просто небольшая контра к Вашей категоричности с примером из жизни. Вот еще один пример - оттуда же. С 16 декабря 2011 вид НН изменился. Добавились новые ячейки и перетасовался порядок. Старые НН нужно печатать в прошлом варианте. Сделали 2 шаблона и на всякий случай проверяем наличие ячеек - чтобы не плодить кучу условий на печати - если ячейка есть, то напечатается. Это к вопросу о "зачем вообще проверять".
__________________
If it ain't broke, take it apart and find out why (с) |
|
![]() |
#5 |
Участник
|
Цитата:
Цитата:
Сообщение от Alexanderis.ua
![]() Вот еще один пример - оттуда же. С 16 декабря 2011 вид НН изменился. Добавились новые ячейки и перетасовался порядок. Старые НН нужно печатать в прошлом варианте.
Сделали 2 шаблона и на всякий случай проверяем наличие ячеек - чтобы не плодить кучу условий на печати - если ячейка есть, то напечатается. Это к вопросу о "зачем вообще проверять". X++: if ( <= ...) { val1 = ...; Range1.Value(val1); } else { val2 = ...; Range2.Value(val2); } X++: val1 = ...; Range1.Value(val1); val2 = ...; Range2.Value(val2); Ну, пока значение, записываемое в ячейку - простое и общее количество ячеек - небольшое, это еще работает. Но с увеличением количества версий Вы сильно задумаетесь хотя бы об отдельных методах для заполнения каждого шаблона. В перспективе - иерархии классов. Нечто вроде X++: if ( <= ...) { this.Method1(); } else { this.Method2(); }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#6 |
Участник
|
Цитата:
Изменения самой НН не радикальны. Только расположение в основном, форматирование какое-то. И старая версия (которая до сих пор одна) не меняется уже. В таких условиях городить иерархию классов или отдельные методы - просто не рационально. И я опять повторюсь - я с Вами не спорю. В общем случае нужно очень хорошо подумать, стоит ли применять именованные ячейки. Но категорически отказываться от них я считаю тоже не правильно. DIXI
__________________
If it ain't broke, take it apart and find out why (с) |
|