Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запарсить данные vlookup' ом из одной книги в другую - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запарсить данные vlookup' ом из одной книги в другую (Макросы/Sub)
Запарсить данные vlookup' ом из одной книги в другую
ant6729 Дата: Пятница, 03.11.2017, 15:01 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 349
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Добрый день всем спецам этого несомненно нужного форума!

У меня такой вопрос.
На определенной стадии выполнения процесса у меня возникает Activebook с именами (это не название, это, как лучше выразиться, просто активбук))
В нее мне нужно запарсить информацию из другого документа под названием S.xlsx

Проставить в актив бук напротив имени возраст
Копировать из книги в книгу меня на этом форуме научили. Спасибо.

Впр ом пользоваться автоматизированно тоже. Спасибо.

Но как прописать впр в случае, когда надо из одной книги в другую - не знаю синтаксиса.

Подскажите, пожалуйста, как проставить в актив бук напротив имени возраст/

Возможно, что впр тут не при чем... а нужно как - то иначе.

Вот мои зарисовки) Ну...не мои, немного...

[vba]
Код
Sub wer68()

' Workbooks.Add
Dim wb_ As Workbook
fp_ = "G:\S.xlsx"

Set wb_ = GetObject(fp_)
      
With wb_.Sheets("Лист1")
          
        lr1 = Cells(Rows.Count, "A").End(xlUp).Row
        
         L = Application.WorksheetFunction.VLookup(xxx, Sheets("Лист1").Range("B2:C300"), 2, False)
        
'       .Cells(i, 1).Copy Cells(i, 1)
'        .Cells(i, 2).Copy Cells(i, 2)
        
  End With
  
wb_.Close False
lr1 = Empty

End Sub
[/vba]
К сообщению приложен файл: 6099535.xlsx(8Kb)


Сообщение отредактировал ant6729 - Пятница, 03.11.2017, 15:07
 
Ответить
СообщениеДобрый день всем спецам этого несомненно нужного форума!

У меня такой вопрос.
На определенной стадии выполнения процесса у меня возникает Activebook с именами (это не название, это, как лучше выразиться, просто активбук))
В нее мне нужно запарсить информацию из другого документа под названием S.xlsx

Проставить в актив бук напротив имени возраст
Копировать из книги в книгу меня на этом форуме научили. Спасибо.

Впр ом пользоваться автоматизированно тоже. Спасибо.

Но как прописать впр в случае, когда надо из одной книги в другую - не знаю синтаксиса.

Подскажите, пожалуйста, как проставить в актив бук напротив имени возраст/

Возможно, что впр тут не при чем... а нужно как - то иначе.

Вот мои зарисовки) Ну...не мои, немного...

[vba]
Код
Sub wer68()

' Workbooks.Add
Dim wb_ As Workbook
fp_ = "G:\S.xlsx"

Set wb_ = GetObject(fp_)
      
With wb_.Sheets("Лист1")
          
        lr1 = Cells(Rows.Count, "A").End(xlUp).Row
        
         L = Application.WorksheetFunction.VLookup(xxx, Sheets("Лист1").Range("B2:C300"), 2, False)
        
'       .Cells(i, 1).Copy Cells(i, 1)
'        .Cells(i, 2).Copy Cells(i, 2)
        
  End With
  
wb_.Close False
lr1 = Empty

End Sub
[/vba]

Автор - ant6729
Дата добавления - 03.11.2017 в 15:01
ant6729 Дата: Пятница, 03.11.2017, 15:02 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 349
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Второй файл
К сообщению приложен файл: Activbook.xlsx(8Kb)
 
Ответить
СообщениеВторой файл

Автор - ant6729
Дата добавления - 03.11.2017 в 15:02
_Boroda_ Дата: Пятница, 03.11.2017, 15:21 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11644
Репутация: 4825 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Код не совсем понятен
Так хотели?
[vba]
Код
Sub wer68()
    Dim wb_ As Workbook
    fp_ = "G:\S.xlsx"
    On Error Resume Next
    Set wb_ = GetObject(fp_)
    With wb_.Sheets("Лист1")
        lr1 = Cells(Rows.Count, "A").End(xlUp).Row
        For i = 1 To lr1
            Cells(i, 2) = Application.WorksheetFunction.VLookup(Cells(i, 1), .Range("B2:C300"), 2, False)
        Next i
    End With
    wb_.Close False
    lr_ = Empty
End Sub
[/vba]
Там, конечно ВПР - это один из небыстрых способов (особенно на больших таблицах), гораздо лучше использовать словари для этого, но грузить ими Вас пока не буду - Вам бы с этим разобраться для начала


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКод не совсем понятен
Так хотели?
[vba]
Код
Sub wer68()
    Dim wb_ As Workbook
    fp_ = "G:\S.xlsx"
    On Error Resume Next
    Set wb_ = GetObject(fp_)
    With wb_.Sheets("Лист1")
        lr1 = Cells(Rows.Count, "A").End(xlUp).Row
        For i = 1 To lr1
            Cells(i, 2) = Application.WorksheetFunction.VLookup(Cells(i, 1), .Range("B2:C300"), 2, False)
        Next i
    End With
    wb_.Close False
    lr_ = Empty
End Sub
[/vba]
Там, конечно ВПР - это один из небыстрых способов (особенно на больших таблицах), гораздо лучше использовать словари для этого, но грузить ими Вас пока не буду - Вам бы с этим разобраться для начала

Автор - _Boroda_
Дата добавления - 03.11.2017 в 15:21
ant6729 Дата: Пятница, 03.11.2017, 15:33 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 349
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Ну, Вам, как бы... можно наполовину логику описать... Все равно в цель...

Для реальной задачи у себя я номера колонок в Вашем коде поменял. Все работает.
Синтаксис понятен! Код работает. Вопрос закрыт. Спасибо!
 
Ответить
СообщениеНу, Вам, как бы... можно наполовину логику описать... Все равно в цель...

Для реальной задачи у себя я номера колонок в Вашем коде поменял. Все работает.
Синтаксис понятен! Код работает. Вопрос закрыт. Спасибо!

Автор - ant6729
Дата добавления - 03.11.2017 в 15:33
ant6729 Дата: Пятница, 03.11.2017, 15:37 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 349
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Я не про словари, я про коллекции подумал, я их использовал уже. Тоже тут хотел, но мне показалось, что это будет забивать оперативную память лишний раз (ну, типа, добавлять в коллекцию имена, потом по ним в цикле искать возраст... мне показалось это долго...) Долго сидеть, и слишком долго просто чтобы улучшить свой рабочий процесс в свободное от работы время. Я лучше для своих рабочих задач эти более - менее простые вещи, это понятнее.
 
Ответить
СообщениеЯ не про словари, я про коллекции подумал, я их использовал уже. Тоже тут хотел, но мне показалось, что это будет забивать оперативную память лишний раз (ну, типа, добавлять в коллекцию имена, потом по ним в цикле искать возраст... мне показалось это долго...) Долго сидеть, и слишком долго просто чтобы улучшить свой рабочий процесс в свободное от работы время. Я лучше для своих рабочих задач эти более - менее простые вещи, это понятнее.

Автор - ant6729
Дата добавления - 03.11.2017 в 15:37
ant6729 Дата: Пятница, 03.11.2017, 15:39 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 349
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Ладно, все равно не шарю... ) Спасибо.
 
Ответить
СообщениеЛадно, все равно не шарю... ) Спасибо.

Автор - ant6729
Дата добавления - 03.11.2017 в 15:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запарсить данные vlookup' ом из одной книги в другую (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!