powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись в файл имен файлов
2 сообщений из 2, страница 1 из 1
Запись в файл имен файлов
    #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
Запись в файл имен файлов
    #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
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись в файл имен файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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