|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.07.2009, 18:31 | #1 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Кавараный Excel!!! Глючит макрос сбора данных.
Уже как-то раз я поднимал этот вопрос, но теперь он возник с неожиданного ракурса.
Итак есть код: Код:
Код:
Вообще цель заключается в том,чтобы помещать этот текущий файл в разные папки, в которых есть точно определенное количество файлов, с известными именами книг и листов, но с разными данными. Помещаем в одну папку. Запускаем макрос, в котором прописаны эти имена книг, листов и ячеек так, чтобы он подгрузил все эти данные в одну книгу. Сохраняем файл под другим именем. Переместили файл в другую папку. Подгрузили данные. Сохранили. Переместили. Только вот проблема. Создал папку. Создал файлы-исходники и главный файл. Написал макрос. Данные действительно подгружаются из текущей папки главного файла. Но только именно для этих файлов исходников. Стоит лишь мне переместить главный файл в другую (аналогичную) папку или заменить один файл-исходник, все перестает работать. То есть откывается первый файл или тот файл, который был заменен и Excel завистает. Итак вопрос: почему так поисходит??? Почему работает только один раз, а потом не работает??? Как такое может быть??? И что с этим делать??? |
21.07.2009, 05:24 | #2 | ||
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Зачем применяется строка
Код:
Код:
3. Вам нужна именно копия ячеек (с форматами, формулами и т.п.), или только их значения? Если копия (как у Вас в коде), то файл потребуется открывать и, как следствие, если скопировать ячейку, содержащую связь с другими ячейками (например, с формулой), то естественно, в дальнейшем, при перемещении файлов связи будут нарушаться и Excel будет в "легком замешательстве". Скорее всего у Вас проблема именно с этим. Если же нужны только значения, то см. пункт 2. 4. Вы говорите, что Цитата:
Цитата:
5. Зачем "множить" один и тот же код? Сначала с именем "sz.xlsx", затем с "hq.xlsx" и т.д. Я так понимаю, что раз имена книг задаются в коде явно, то они известны заранее. Не лучше ли занести их в массив и организовать цикл? 6. Не понятно (видимо потому, что код приведен не полностью), зачем последовательно копировать данные из разных файлов в одни и те же ячейки? 7. Дайте пример 2-х - 3-х файлов источников с разными данными в ячейках для копирования, и объясните, что нужно сделать в Вашем "главном" файле. Я не вижу проблем сделать так, чтобы макрос не был привязан к исходным файлам и папкам. (желательно, в формате ".xls")
Чем шире угол зрения, тем он тупее.
|
||
21.07.2009, 09:21 | #3 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Огромное спасибо за оказанное внимание и подробный ответ.
итак по пунктам. 1) Прямо сейчас попобую Код:
3) Раньше я копирвал целиком, теперь буду дулать ссылки. 4) Замена происходит так: есть таблица, каждый пользователь заполняет только свою колонку раз в месяц, получется что пользователи дают мне одну и ту же таблицу, но в ней заполнена только по одной колонке (разной). Я ее собираю. В следуюшем месяце они мне опять дадут свои таблицы. Соответсвенно их таблицы-файлы исходники, моя таблица- "главный" файл. Я хочу заменять файлы исходники, а данные автоматически собиать в главном файле. 5) Полностью согласен. Уже сам начал переправлять. Просто я пошел от простого к сложному. 6) см пункт 4. Данные есть в файлах-исходниках только в одной колонке. А вообще номера ячеек в исходниках и "главном" совпадают. 7) а что можно сделать так, чтобы совсем не было привязок. Сейчас буду по Вашим замечаниям отрбатывать такой код, если что-то не понял,можете сразу поправить Код:
|
21.07.2009, 10:07 | #4 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Чем шире угол зрения, тем он тупее.
|
|
21.07.2009, 11:08 | #5 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Огромное спасибо. Файлики я как раз хотел выложить, но по ходу уже не надо. За код спасибо, сейчас попробую.
|
21.07.2009, 11:24 | #6 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Файлы чисто для примера, но зато типичные. Можно сразу задать один уточняющий вопрос: Можно в цикле менять номера ячеек, котрые я копирую??? то есть из файла sz копируется например колонка В, из файла mp колонку C. Чтобы организовать все одним циклом нужно что-то навроде [&n%12], где для sz n=B, для mp n=C и т.д.
|
21.07.2009, 12:15 | #7 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Очень надо организовать обозначение ячеек [&n%12], как можно организовать двумерный массив или несколько массивов значения из которых берутся зависимо, то есть из всех массивов берется первое значение, потом из всех второе и т.д??? И как [&n%12]???
|
21.07.2009, 12:21 | #8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Если же номера столбцов-источников произвольны, то организуйте второй массив той же размерности, что и asFileNames, в котором должны находиться номера столбцов на тех же позициях, что и имена файлов. Тогда по счетчику цикла из одного массива берем имя файла, а из другого - номер столбца в этом файле.
Чем шире угол зрения, тем он тупее.
|
|
21.07.2009, 12:30 | #9 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Да,да,да я это и имел ввиду. Лучше всего организовать второй массив, так как столбцы довольно произвольные, но как прописать счетчик? как организовать поэлементной выбор элементов массива? как подставить это значение в адрес ячейки? Вся проблема в том, что я не знаю
синтаксиса. Мне нужно перевести на синтаксис VBA: m array (A,B,C,D,E) [%m[i]%9] i:=i+1; И второй вопрос: можно в Вашем коде вместо присвоения значений записать ссылку? Это существенно изменит суть? |
21.07.2009, 12:37 | #10 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Примерно так:
Код:
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для сбора (с инет-порталов) и анализа статистических данных. | Гаур-Мяур | Помощь студентам | 5 | 03.04.2009 15:49 |
Макрос в Excel | Dartchuwak | Microsoft Office Excel | 1 | 11.01.2009 21:50 |
Помогите! Глючит Excel | Pithon | Microsoft Office Excel | 8 | 20.02.2008 07:47 |
Не работает Excel глючит по страшному? | boombox | Microsoft Office Excel | 2 | 22.11.2007 12:16 |