|
16 / 4 / 0
Регистрация: 01.08.2011
Сообщений: 72
|
|
Организация циклической вставки данных15.01.2013, 14:12. Показов 7881. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение 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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|