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

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

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 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,095
Репутация: 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,095
Репутация: 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,095
Репутация: 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




07:33.


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

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


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

RusProfile.ru


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