Макрос на директорию?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Макрос на директорию? Expand / Collapse
Автор
Сообщение
23.05.2007 23:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.10.2008 16:45
Сообщ.: 164, Visits: 1 488

Всем здрасти! Всех с весной, студентов с сессией!

В директории есть некоторое количество текстовых фалов с одинаковой структурой. Так вот «результат» каждого из этих файлов нужно скопировать на строчку ниже предыдущего «результата». «Результат» это маленький макрос, убирающий всё лишнее и выстраивающий данные в одну строчку.

 

Вопрос как запустить макрос на все файлы в директории?

 

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

 

Спасибо!

 

Сообщ. #913616
23.05.2007 23:46
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.12.2007 16:53
Сообщ.: 100, Visits: 1 707
Ключевое слово Dir

Вот почитайте (на этом форуме не нашёл подходящих тем)

http://bbs.vbstreets.ru/viewtopic.php?t=32669&highlight=dir

http://bbs.vbstreets.ru/viewtopic.php?t=9987&highlight=dir

http://bbs.vbstreets.ru/viewtopic.php?t=3895&highlight=dir

 

Смысл такой

Sub Макрос1()
    Dim iPath$, iFileName$
    iPath = "C:\Temp\"
    iFileName = Dir(iPath) 'тут же можно прописать расширения, например, iPath & "*.txt"
    Do While iFileName <> ""
        'тут что-то делаете с каждым файлом,
        '............................
       
        iFileName = Dir 'передача названия другого файла
    Loop
End Sub

Сообщ. #913617
24.05.2007 8:15
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.03.2008 5:12
Сообщ.: 386, Visits: 4 197
еще один пример в соседнем топике: http://www.relib.com/forums/Topic913507-11-1.aspx
Сообщ. #913619
24.05.2007 19:01
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.10.2008 16:45
Сообщ.: 164, Visits: 1 488
Нашел в умной книжке...

Attribute VB_Name = "Module1"
Option Explicit

Sub GetImportFileName()
    Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
   
'   Настройка списка фильтров
    Filt = "Текстовые файлы (*.txt),*.txt," & _
           "Файлы печати (*.prn),*.prn," & _
           "Разделенные запятой (*.csv),*.csv," & _
           "ASCII (*.asc),*.asc," & _
           "Все файлы (*.*),*.*"

'   По умолчанию используется фильтр *.*
    FilterIndex = 5

'   Заголовок окна
    Title = "Выберите импортируемый файл"

'   Получение имени файла
    FileName = Application.GetOpenFilename _
        (FileFilter:=Filt, _
         FilterIndex:=FilterIndex, _
         Title:=Title)

'   При отмене выйти из окна
    If FileName = False Then
        MsgBox "Файл не выбран."
        Exit Sub
    End If
  
'   Отображение полного имени и пути
    MsgBox "Вы выбрали " & FileName
End Sub


Sub GetImportFileName2()
    Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
    Dim i As Integer
    Dim Msg As String
'   Настройка фильтров файлов
    Filt = "Текстовые файлы (*.txt),*.txt," & _
            "Файлы печати (*.prn),*.prn," & _
            "Разделенные запятой (*.csv),*.csv," & _
            "ASCII (*.asc),*.asc," & _
            "Все файлы (*.*),*.*"
'   По умолчанию используется фильтр *.*
    FilterIndex = 5

'   Заголовок окна
    Title = "Выберите импортируемый файл"

'   Get the file name
    FileName = Application.GetOpenFilename _
        (FileFilter:=Filt, _
         FilterIndex:=FilterIndex, _
         Title:=Title, _
         MultiSelect:=True)

'   Закрытие окна при использовании кнопки Отмена
    If Not IsArray(FileName) Then
        MsgBox "Файл не выбран."
        Exit Sub
    End If
Как сюда запихнуть мкрос который будет запускать каждый файл одельно?
'   Отображение полного имени и пути
    For i = LBound(FileName) To UBound(FileName)
        Msg = Msg & FileName(i) & vbCrLf
    Next i
    MsgBox "Вы выбрали:" & vbCrLf & Msg
End Sub



 

Сообщ. #913624
24.05.2007 22:36
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.10.2008 16:45
Сообщ.: 164, Visits: 1 488
 понял, всё работает! Правда вручную все файлы закрывать надо :-(
Сообщ. #913627
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, VladConn

Время GMT +3:00, Сейчас 1:39