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

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

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

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

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

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

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

Можно использовать метод "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
По умолчанию

Пожалуй, имеет смысл перебирать только файлы с определённым расширением, исключив к тому же из рассмотрения файлы с ненужными атрибутами (вроде 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,180
По умолчанию

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

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

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

Вместо
Код:
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
По умолчанию

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов из 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 22:44
Открытие браузера с заданной страничкой! Adamant Общие вопросы C/C++ 1 31.10.2007 11:04
Чтение MP3 файлов из папки PAVEL315 Общие вопросы Delphi 1 03.03.2007 13:33