|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
Организация циклической вставки данных15.01.2013, 14:12. Показов 7974. Ответов 69
Метки нет (Все метки)
Необходим макрос последовательного ввода данных в рабочую книгу из набора большого количества файлов, находящихся в 1 папке, например, с:\Baza и именуемые Файл1.xls, Файл2.xls и так далее. У всех у них один лист и называется одинаково "Лист1". Количество таких файлов конечно, но пока неизвестно. Необходимо последовательно в текущую открытую книгу на "Лист1" вставлять данные со столбца "А" по столбец "К" каждого из файлов последовательно, закрывая потом файл-источник. Возможно ли, чтобы макрос сам определял количество файлов-источников и формировал цикл? Процедура будет выполнятся многократно, поэтому нужен макрос. Процедуру обработки данных вставлю сам в нужное место.
Добавлено через 23 минуты Забыл уточнить. Реализовать надо без использования буфера обмена.
0
|
|
| 15.01.2013, 14:12 | |
|
Ответы с готовыми решениями:
69
Организация работы программ циклической структуры
|
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 13:03 [ТС] | |
|
Все хорошо, но там, где в данных пустая ячейка, процедура,описанная в строках 31 и 32 рисует ноль. Можно избавиться от этого?
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|||
| 16.01.2013, 13:05 | |||
|
0
|
|||
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 13:21 [ТС] | |
|
код также немного подтормаживает, но быстрее, чем с открытием Тормозит одинаково не зависимо от размера данных, тогда как мелкие данные старая процедура хавает быстрее. Появление нулей в данных на месте пустых ячеек недопустимо, так как есть начальные данные со значением 0
Добавлено через 4 минуты Казанский, Можно побороть появление нулей на месте пустых данных?
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
||||||
| 16.01.2013, 13:25 | ||||||
|
Если я правильно понял, то в сообщении #37:
Организация циклической вставки данных говорится об этом: Кликните здесь для просмотра всего текста
Я не дождался, когда произойдёт замена. Если я всё делал правильно, то использование формул не подходит, когда используется много ячеек, т.к. код работает медленно. Остаются два варианта, как взять данные из закрытой книги:
0
|
||||||
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||||||
| 16.01.2013, 13:25 | |||||||
2
|
|||||||
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 13:29 [ТС] | |
|
Казанский, С сортировкой, думаю разберусь. Подстроюсь под фактическую, если что. Ответьте про появление нулей на месте пустых ячеек после запроса в закрытую книгу. Кстати подвисание по времени сопоставимо что при процедуре открытия файла с миллионом записей, что при обращении в закрытую книгу
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||
| 16.01.2013, 13:39 | |||
![]() Добавлено через 5 минут
1
|
|||
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 13:46 [ТС] | |
|
Короче, беру за основу сообщение #29, где происходит перенос данных с открытой книги, поскольку остальное по факту не приводит к повышению производительности. Но безусловно, забор данных из закрытой книги вещь полезная. Возможно применю в другом месте. Спасибо всем, что потратили время на помощь.
0
|
|
| 16.01.2013, 14:38 | |||
Сообщение было отмечено как решение
РешениеНе по теме:
Отображаемые номера сообщений могут по тем или иным причинам изменится, да и искать их в многостраничных темах неудобно! Правой кнопкой на номере нужного сообщения выбираем Копировать адрес ссылки и вставляем в пост:pardon:
3
|
|||
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 16.01.2013, 17:15 | |
|
Пока прихожу к выводу, что Excel-команду ExecuteExcel4Macro можно применить только к одной ячейке.
Т.е. нужно использовать цикл, чтобы пройтись по всем ячейкам одиннадцати столбцов листа Excel. Наверное, это будет тоже долго. Остаётся тогда один вариант взятия данных из закрытой книги Excel: использование ADO.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 16.01.2013, 18:49 | ||||||
|
Вы ещё не рассмотрели вариант с GetObject() - это примерно как и WorkbooksOpen(), но без отображения окна файла.
Думаю должно быть побыстрее. Т.е. примерно так (на примере кода Скрипта):
1
|
||||||
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
||||||
| 16.01.2013, 19:17 | ||||||
|
Полный код с использование команды GetObject.
В данном случае книга Excel открывается, но не отображается на мониторе. Кликните здесь для просмотра всего текста
Примечание Активная книга должна быть сохранена. Иначе при открытии файлов, активная книга закрывается.
1
|
||||||
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 21:00 [ТС] | |
|
На рабочем компе все вроде шло ок, на домашнем ноуте ругается на строку 33. Библиотеку подключил. Один из файлов скопировал, встает на втором из списка, точнее на втором проходе по циклу
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 16.01.2013, 21:02 | |
|
San8691, активная книга должна быть сохранена. Если книга не сохранена, то она закрывается при открытии файла.
0
|
|
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 21:18 [ТС] | |
|
Активная книга это та, в которой макрос (скрипт ) Конечно она сохранена. Или я чего-то не понимаю
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
||
| 16.01.2013, 21:20 | ||
|
San8691, я под активной книгой понимаю в отношении вашей темы - книга, куда должны данные попадать и обрабатываться.
0
|
||
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 21:23 [ТС] | |
|
Это и есть та книга, где макрос находится. Или тут что-то не так? Копируется из файла-источника и вставляется в Лист1 файла, где макрос тут же и обработка будет
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 16.01.2013, 21:24 | |
|
San8691, не обращайте внимание на то, где находится макрос. Местоположение макроса не связано с тем, что он делает.
0
|
|
|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
| 16.01.2013, 21:30 [ТС] | |
|
33 строка - я создаю новый файл и обзываю лист на нем?? тогда ниже надо бы его сразу сохранить? каков тогда синтаксис? и почему нельзя все вставлять в файл, из которого был запущен макрос?
0
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 16.01.2013, 21:34 | |
|
San8691, вставьте ссылку на код, который вы используете.
Как сделать ссылку здесь написано: https://www.cyberforum.ru/post4010026.html Только в Internet Explorer 9 - Копировать ярлык.
0
|
|
| 16.01.2013, 21:34 | |
|
ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
Макрос сбора и вставки данных Универсальная функция вставки данных в БД Ошибка вставки данных в бд access Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|