Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись в файл имен файлов / 2 сообщений из 2, страница 1 из 1
21.10.2011, 10:38
    #37491763
kaudilio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в файл имен файлов
День добрый

Имеется скрипт копирующий содержимое кучи файлов dbf в один xls. Проблема состоит в том, что нужно добавить еще один столбец в конечный файл, который будет содержать в каждой строчке из какого файла эта строка импортирована. Никто не сможет подсказать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub DBF()

    Dim myPath As String, myName As String, Wb As Workbook, clTarget As Range
    Application.ScreenUpdating = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "??????? ??????? ?????"
        .Show
        If .SelectedItems.Count =  0  Then Exit Sub
        myPath = .SelectedItems( 1 ) & Application.PathSeparator
    End With
    
    myName = Dir(myPath & "*.dbf")
    With ThisWorkbook.Sheets( 1 )
        Do While myName <> ""
            Set Wb = Workbooks.Open(Filename:=myPath & myName)
            ActiveSheet.UsedRange.Copy .Cells(.UsedRange.Rows.Count + .UsedRange.Row, "A")

            Wb.Close SaveChanges:=False
            myName = Dir
        Loop
    End With
    
End Sub
...
Рейтинг: 0 / 0
21.10.2011, 11:47
    #37491993
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в файл имен файлов
> Автор: kaudilio
> Никто не сможет подсказать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim nRow As Long
....
    myName = Dir(myPath & "*.dbf")
    With ThisWorkbook.Sheets( 1 )
        Do While myName <> ""
        ' Запоминаем начало диапазона, который нужно будет заполнить
            nRow = .UsedRange.Rows.Count + .UsedRange.Row
            Set Wb = Workbooks.Open(Filename:=myPath & myName)
            ActiveSheet.UsedRange.Copy .Cells(.UsedRange.Rows.Count + .UsedRange.Row, "A")
            ' Заполняем вставленные данные именем источника
            .Range(.Cells(nRow, .UsedRange.Columns.Count +  1 ), .Cells(.UsedRange.Rows.Count + .UsedRange.Row, 
..UsedRange.Columns.Count +  1 )).Value = myName

            Wb.Close SaveChanges:=False

            myName = Dir
        Loop
    End With
....

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись в файл имен файлов / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]