Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Макросы для Exel 
:(
    Опции темы
dionisiu
Дата 22.6.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: 1
Всего: 2



Вроде стало понятней. Вижу два варианта:
1. (ПРОСТЕЙШИЙ): сделать один раз файл "Общая статистика", в нём листы на каждую базовую станцию, на каждом листе в соответствии с количеством секторов сделать таблицы и там же нарисовать соответствующие диаграммы. Далее, при открытых файлах исходных данных входим в нужные ячейки таблицы, жмём "равно", переходим к нужному файлу станции (с учётом сектора), там ставим курсор на такую же ячейку таблицы, жмём "Enter" - получили связь с файлом. Так делаем для каждой ячейки каждой таблицы каждого файла. Далее, идём Сервис/Параметры/вкладка Правка. Здесь удаляем галочку с пункта "Запрашивать об обновлении автоматических связей". Потом идём меню Правка/Связи, жмём слева внизу кнопку "Запрос на обновление связи", выбираем "Не задавать вопрос и обновлять связи".
Сохраняем книгу.
Примечание: Книги исходных файлов должны иметь стабильные имена и строго определённый путь хранения. То есть, если есть необходимость накапливать информацию для архива, то при условии хранения файлов в каталоге : C:\Documents and Settings\dnanobashvili\Desktop\1, там нужно создать каталог "Архив", куда перемещать устаревшие файлы, а новые ложить именно по этому пути.
Дальнейшая работа будет заключаться для Вас в следующем: Запросить из оборудования файлы, переместить их в нужный каталог (предварительно, при необходимости, заархивировав старые), открыть их все одновременно, потом открыть файл "Общая статистика", выбрать Правка/Связи/Обновить, книгу сохранить, исходники закрыть.


2.(СЛОЖНЕЕ): сделать то же самое, но с включённым макрорекордером, однако после того, как из ячейки таблицы Статистики будет создана ссылка на файл исходников, нужно будет скопировать эту ячейку и вставить туда же, но через СпецВставку/Значения - это разорвёт связь с книгой. Так же при работе этого макроса будет необязательно строгое соответствие маршрута хранения данных, важно, чтоб при его запуске были открыты исходники, и они имели стабильные имена.
После прохода по всем книгам всех станций и всех секторов, можно остановить макрорекордер и почистить его код на предмет удаления явно лишних деталей (он записывает подряд даже смещения окна просмотра, типа так:

Код

ActiveWindow.SmallScroll ToRight:=7
    Range("O9").Select
    ActiveWindow.SmallScroll ToRight:=10
    Range("X16").Select
    ActiveWindow.SmallScroll Down:=16
    Range("X32").Select
    ActiveWindow.SmallScroll ToRight:=-17
    Range("G32").Select
    ActiveWindow.SmallScroll Down:=8
 
Вот как раз эти скроллы и нужно удалить, так как они приводят к излишней "иллюминации" процесса и дико тормозят работу.

3. (ЕЩЕ СЛОЖНЕЕ) В файле "Общаяя статистика" завести лист с перечнем базовых станций, количеством секторов на них, именами файлов (первая часть имени, без ключевого слова seqtor), каталогом хранения.
Далее, на этом же листе забабахать кнопку, в её коде написать процедуру со следующей логикой: 
1. Прочитать с листа и загрузить в массив имена базовых станций, количество секторов на каждой, названия файлов.
2. прочитать с листа путь к каталогу
3. перейти в каталог
4. прочитать содержимое каталога, сравнить имена файлов со списком, просчитать количество секторов: При нехватке файлов выдать предупреждение о невозможности работы (если не сформирован файл по третьему сектору БумажнойФабрики, то работать невозможно), при избытке файлов выдать предупреждение, что данных слишком много (вот поставили Вы новую станцию, а в список внести забыли, или у старой станции новый сектор добавился).
5. При отсутствии файлов прекратить работу, при избытке прекратить работу (каталог желательно держать чистым от посторонней информации), при совпадении количества продолжить работу.
6. последовательно открыть все файлы.
7. проверить в "Общей Статистике" существование листов с именами станций:Если есть - удалить
8. Создать листы с именами базовых станций.
9. перенести данные с листов исходников (по конкретной базовой станции по секторам в порядке очереди) на соответствующий лист (можно любой вариант: от прямого копирования области до по-ячеечного переноса значений)
10 нарисовать диаграммы (можно потренироваться в макрорекордере)
11. последовательно закрыть все книги, общую статистику сохранить.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.