Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 08:40   #1
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию Выборка и создание нового файла

Требуется из исходного файла выбрать данные и сформировать новый файл. Более подробно задача изложена внутри файлов.
Прошу подсказать начало пути
Вложения
Тип файла: rar q-01.rar (19.5 Кб, 23 просмотров)
kzld вне форума Ответить с цитированием
Старый 23.12.2009, 11:44   #2
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от kzld Посмотреть сообщение
Требуется из исходного файла выбрать данные и сформировать новый файл. Более подробно задача изложена внутри файлов.
Прошу подсказать начало пути
пять часов тишина.
Прошу подсказать , как сделать диалог выбора листов из файла.
Название и расположение файла известно
kzld вне форума Ответить с цитированием
Старый 23.12.2009, 12:21   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

смотрите FileDialog
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.12.2009, 13:15   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Прошу подсказать , как сделать диалог выбора листов из файла.
Сделать-то всё можно, но я бы не стал ничего изобретать, а просто перед запуском макроса (или во время его работы) просто выделил бы нужные листы, удерживая клавишу Ctrl
Ну а потом макросом можно обработать все листы из activewindow.SelectedSheets
EducatedFool вне форума Ответить с цитированием
Старый 23.12.2009, 15:22   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Когда то писал схожее по смыслу приложение,немного изменил под вашу задачу.Может и поможет в работе
Вложения
Тип файла: rar Обработка.rar (203.5 Кб, 36 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.12.2009, 05:26   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Запустите макрос "Main". Будет создан требуемый файл и сохранен в той же папке под именем "Итог.xls". В исходном файле может находиться любое количество листов с любыми именами. Обрабатываются только нужные.
Вложения
Тип файла: rar imeem_2.rar (18.5 Кб, 35 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 25.12.2009 в 11:11.
SAS888 вне форума Ответить с цитированием
Старый 26.12.2009, 08:41   #7
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение. Запустите макрос "Main". Будет создан требуемый файл и сохранен в той же папке под именем "Итог.xls". В исходном файле может находиться любое количество листов с любыми именами. Обрабатываются только нужные.
Не получилось.
Макрос выдал ошибку на строке
On Error GoTo 0: Workbooks("Итог.xls").Sheets(a(i, 6)).Activate
Файл "Итог.xls" пустой
kzld вне форума Ответить с цитированием
Старый 26.12.2009, 08:59   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Скачал свой же файл и еще раз протестировал. Ошибка не появляется.
Вы запускали макрос именно в этом файле (с имеющимися данными), или в другом? Если в другом, то возможно, что требуется вставить какие-нибудь проверки (на "пустоту" ячейки и т.п.). Прикрепите проблемный файл - разберемся.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 26.12.2009, 09:02   #9
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Скачал свой же файл и еще раз протестировал. Ошибка не появляется.
Вы запускали макрос именно в этом файле (с имеющимися данными), или в другом? Если в другом, то возможно, что требуется вставить какие-нибудь проверки (на "пустоту" ячейки и т.п.). Прикрепите проблемный файл - разберемся.
Скачал файл отсюда, двумя поставми выше.
Ошибка та же.
Установлен Excel 2007
kzld вне форума Ответить с цитированием
Старый 26.12.2009, 09:35   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Действительно. В 2007 есть проблема. Для ее устранения, в коде макроса замените строку
Код:
a = ws.Range(ws.[G3], ws.Cells(Rows.Count, "N").End(xlUp)).Value
на строку
Код:
ws.Activate: a = Range([G3], Cells(Rows.Count, "N").End(xlUp)).Value
а также, необходимо устранить неточность, которую я обнаружил в ходе разбирательства. А именно: строку кода
Код:
On Error Resume Next: Set ws = ThisWorkbook.Sheets(lst)
нужно заменить на
Код:
On Error Resume Next: Set ws = ThisWorkbook.Sheets(b(lst))
и будет счастье.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового сайта Миха ПРОрок HTML и CSS 7 07.07.2009 10:15
Создание нового типа master_root Общие вопросы Delphi 2 02.07.2008 22:33
XML - создание нового документа PUH Помощь студентам 5 17.04.2008 20:32
создание нового листа cathie Microsoft Office Excel 2 12.12.2007 15:49
Меню, создание нового пункта Yogik™ Помощь студентам 2 17.08.2007 17:32