Доброго Времени суток уважаемые знатоки и просто ученики, суть моей проблемы Необходимо выбрать много файлов, через CTRL например, в диалоговом окне выбора И за тем по очереди их открывать и выбирать там диапазон данных для ВПР, Который я прописал и вставлять их хотя бы друг за другом в исходном файле. Название книг всегда разное есть только ключевое поле для ВПР и куча данных примерно 50 т. строк
"так же есть нюансы с ВПР может понадобится ВПР по двум критериям и больше но пока не суть"
Благо дарю
Доброго Времени суток уважаемые знатоки и просто ученики, суть моей проблемы Необходимо выбрать много файлов, через CTRL например, в диалоговом окне выбора И за тем по очереди их открывать и выбирать там диапазон данных для ВПР, Который я прописал и вставлять их хотя бы друг за другом в исходном файле. Название книг всегда разное есть только ключевое поле для ВПР и куча данных примерно 50 т. строк
"так же есть нюансы с ВПР может понадобится ВПР по двум критериям и больше но пока не суть"
Вот заготовка для мультивыбора файлов и поочередного открытия [vba]
Код
Option Explicit
Public Sub test() Dim lf As Long
With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Title = "Выбрать файлы" 'заголовок окна диалога .Filters.Clear 'очищаем установленные ранее типы файлов .Filters.Add "Excel files", "*.xls*;*.xlsx", 1 'устанавливаем возможность выбора только файлов Excel ''.Filters.Add "Text files", "*.txt", 2 'добавляем возможность выбора текстовых файлов .FilterIndex = 1 'устанавливаем тип файлов по умолчанию .InitialFileName = ThisWorkbook.Path & "\" 'назначаем папку отображения и имя файла по умолчанию .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов) If .Show = 0 Then Exit Sub 'показывает диалог 'цикл по коллекции выбранных в диалоге файлов For lf = 1 To .SelectedItems.Count Workbooks.Open .SelectedItems(lf) Debug.Print .SelectedItems(lf) Workbooks(ActiveWorkbook.Name).Close Next End With End Sub
[/vba]
Вот заготовка для мультивыбора файлов и поочередного открытия [vba]
Код
Option Explicit
Public Sub test() Dim lf As Long
With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Title = "Выбрать файлы" 'заголовок окна диалога .Filters.Clear 'очищаем установленные ранее типы файлов .Filters.Add "Excel files", "*.xls*;*.xlsx", 1 'устанавливаем возможность выбора только файлов Excel ''.Filters.Add "Text files", "*.txt", 2 'добавляем возможность выбора текстовых файлов .FilterIndex = 1 'устанавливаем тип файлов по умолчанию .InitialFileName = ThisWorkbook.Path & "\" 'назначаем папку отображения и имя файла по умолчанию .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов) If .Show = 0 Then Exit Sub 'показывает диалог 'цикл по коллекции выбранных в диалоге файлов For lf = 1 To .SelectedItems.Count Workbooks.Open .SelectedItems(lf) Debug.Print .SelectedItems(lf) Workbooks(ActiveWorkbook.Name).Close Next End With End Sub
Большое спасибо и тысяча благодарностей сейчас попробую по разбираюсь только тему не закрывайте хочу добить до ума да и за одно может кому полезно будет
Большое спасибо и тысяча благодарностей сейчас попробую по разбираюсь только тему не закрывайте хочу добить до ума да и за одно может кому полезно будетElhust
Да совершенно верно, вот я тут сделал "что то" только ВПР надо подправить. И ещё надо сделать чтобы новая книга новый столбец в отчётной книге появлялся не понимаю как в цикле разделить этот момент
Да совершенно верно, вот я тут сделал "что то" только ВПР надо подправить. И ещё надо сделать чтобы новая книга новый столбец в отчётной книге появлялся не понимаю как в цикле разделить этот моментElhust
Откуда взялась новая книга? Если нужно создать новую книгу, то надо соответствующий код добавлять. например [vba]
Код
Option Explicit Const nBookName As String = "out.xlsx" Private Sub newWB()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:= _ ThisWorkbook.Path & "\" & nBookName, FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub
[/vba]
Это если нужно создать одну книгу. Если нужно создать несколько, то надо модифицировать код. Насчет ВПР - создайте новую тему и толком опишите, что хотите получить.
Откуда взялась новая книга? Если нужно создать новую книгу, то надо соответствующий код добавлять. например [vba]
Код
Option Explicit Const nBookName As String = "out.xlsx" Private Sub newWB()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:= _ ThisWorkbook.Path & "\" & nBookName, FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub
[/vba]
Это если нужно создать одну книгу. Если нужно создать несколько, то надо модифицировать код. Насчет ВПР - создайте новую тему и толком опишите, что хотите получить.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com