Форум программистов
Реклама:
Контент-фильтр ИКС для учебных заведений.
Готовый набор правил для школ, фильтрация по спискам Роскомнадзора и Минюста. Соответствует ФЗ №436 и №139.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 10.04.2008, 05:01   #1
anutiks
 
Регистрация: 20.12.2007
Сообщений: 4
Репутация: 10
По умолчанию Открытие файлов из заданной папки

Помогите, плиз! В определенной папке есть файлы Exel, нужно чтобы макрос автоматом открывал их по очереди и редактировал. Как такое можно сделать?
anutiks вне форума  
Старый 10.04.2008, 06:54   #2
SAS888
Профессионал
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,110
Репутация: 886
По умолчанию

Можно использовать метод "FileSearch", но в Excel 2007 он работать не будет. Поэтому, предлагаю сделать так:
Код:

Sub ManyFiles()

    Dim Directory As String, f As String
    Directory = "D:\Temp\" ' Путь к исходной папке
    f = Dir(Directory, 7) 'Получение первого файла
    Do While f <> ""
        Workbooks.Open Filename:=Directory & f
            'Здесь расположите код, который необходимо выполнить
            ' для каждого файла   
        ActiveWorkbooks.Save
        ActiveWorkbooks.Close
        
        f = Dir 'Получение следующего файла
    Loop
    
End Sub

Если нужно, предварительно задать путь (выбрать папку), то для этого в начале процедуры можно вызвать соответствующее стандартное диалоговое окно Excel.

Последний раз редактировалось SAS888; 10.04.2008 в 08:00. Причина: Добавлено
SAS888 вне форума  
Старый 10.04.2008, 09:47   #3
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Репутация: 80
По умолчанию

Пожалуй, имеет смысл перебирать только файлы с определённым расширением, исключив к тому же из рассмотрения файлы с ненужными атрибутами (вроде ReadOnly, Hidden и System, которые зачем-то подключил уважаемый SAS888), но не забыв подключить файлы с атрибутами допустимыми.

Рассчитывать на то, что к моменту окончания обработки очередная книга будет оставаться активной, я бы не советовал.
Код:

Sub DirFunctionExample()
    Const myPattern = "*.XLS"
    Dim myPath As String, myName As String, Wb As Workbook

    myPath = CurDir & Application.PathSeparator
    myName = Dir(myPath & myPattern, vbNormal + vbArchive)
    Do While myName <> ""
        Set Wb = Workbooks.Open(Filename:=myPath & myName _
            , AddToMRU:=False)
        '
        '...
        '
        Wb.Save
        Wb.Close
        myName = Dir   ' Get next entry.
    Loop
End Sub

P.S. Подробности: поставить в VBA курсор на Dir и нажать F1
дмидми вне форума  
Старый 10.04.2008, 10:43   #4
SAS888
Профессионал
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,110
Репутация: 886
По умолчанию

Согласен полностью.
SAS888 вне форума  
Старый 11.04.2008, 03:02   #5
anutiks
 
Регистрация: 20.12.2007
Сообщений: 4
Репутация: 10
По умолчанию

Ух-ты как все подробно по полочкам разложили!!! Спасибо, пойду пробовать.
anutiks вне форума  
Старый 11.04.2008, 04:46   #6
anutiks
 
Регистрация: 20.12.2007
Сообщений: 4
Репутация: 10
По умолчанию

И еще вопросик. Как потом отредактированный файл сохранить под этим же именем только в другой каталог?
anutiks вне форума  
Старый 11.04.2008, 05:08   #7
SAS888
Профессионал
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,110
Репутация: 886
По умолчанию

Вместо
Код:

Wb.Save

используй
Код:

Wb.SaveAs Filename:="D:\Temp\" & myName

, где "D:\Temp\" - это новый путь. И далее, если нужно, параметры сохранения (FileFormat, Password, ReadOnly и т.п). Смотри help по VBA.
SAS888 вне форума  
Старый 14.04.2008, 04:19   #8
anutiks
 
Регистрация: 20.12.2007
Сообщений: 4
Репутация: 10
По умолчанию

Спасибки!
anutiks вне форума  
Закрытая тема



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов из Delphi Demien Общие вопросы Delphi 16 28.07.2011 01:06
открытие файлов Ensoph Общие вопросы Delphi 5 31.03.2008 20:45
Открытие файлов *.txt Bill Gates Общие вопросы Delphi 3 28.11.2007 23:44
Открытие браузера с заданной страничкой! Adamant Общие вопросы C/C++ 1 31.10.2007 12:04
Чтение MP3 файлов из папки PAVEL315 Общие вопросы Delphi 1 03.03.2007 14:33




02:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru