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

Вход

Регистрация

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

 

= Мир MS Excel/Подстановка данных в таблицу с другого листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Подстановка данных в таблицу с другого листа
DyadyaVadya Дата: Среда, 25.12.2019, 10:46 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго всем времени суток. Прошу вашей помощи, решить вопрос с помощью макроса. На сколько понимаю, только так можно уменьшить объём файла - в нём отчёты за несколько лет, около 100К строк, и подстановка значений через ВПР раздувает его до массы великой, что сильно замедляет работу... Помогите пожалуйста через макрос подставить данные в 15 и 16 колонку первого листа, из таблицы второго. Заранее огромное спасибо.
К сообщению приложен файл: 2016-2019_----.xlsm (41.2 Kb)
 
Ответить
СообщениеДоброго всем времени суток. Прошу вашей помощи, решить вопрос с помощью макроса. На сколько понимаю, только так можно уменьшить объём файла - в нём отчёты за несколько лет, около 100К строк, и подстановка значений через ВПР раздувает его до массы великой, что сильно замедляет работу... Помогите пожалуйста через макрос подставить данные в 15 и 16 колонку первого листа, из таблицы второго. Заранее огромное спасибо.

Автор - DyadyaVadya
Дата добавления - 25.12.2019 в 10:46
Gustav Дата: Среда, 25.12.2019, 12:01 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Можно так, например:
[vba]
Код
Sub mcr()
    Dim typcli As Range, platel As Range, poluch As Range, tabcus As Range
    
    Set typcli = Range("tab_data[Тип клиента]")
    Set platel = Range("tab_data[Плательщик]")
    Set poluch = Range("tab_data[ПОЛУЧАТЕЛЬ МАТЕРИАЛА]")
    Set tabcus = Range("tab_customer")
    
    typcli.Value = WorksheetFunction.VLookup(poluch, tabcus, 2, 0)
    platel.Value = WorksheetFunction.VLookup(poluch, tabcus, 3, 0)
End Sub
[/vba]Не знаю, правда, насколько будет быстро.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеМожно так, например:
[vba]
Код
Sub mcr()
    Dim typcli As Range, platel As Range, poluch As Range, tabcus As Range
    
    Set typcli = Range("tab_data[Тип клиента]")
    Set platel = Range("tab_data[Плательщик]")
    Set poluch = Range("tab_data[ПОЛУЧАТЕЛЬ МАТЕРИАЛА]")
    Set tabcus = Range("tab_customer")
    
    typcli.Value = WorksheetFunction.VLookup(poluch, tabcus, 2, 0)
    platel.Value = WorksheetFunction.VLookup(poluch, tabcus, 3, 0)
End Sub
[/vba]Не знаю, правда, насколько будет быстро.

Автор - Gustav
Дата добавления - 25.12.2019 в 12:01
DyadyaVadya Дата: Среда, 25.12.2019, 12:23 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Gustav, спасибо огромное! Работает.

Не знаю, правда, насколько будет быстро.

Работает быстро, по мне так очень быстро! 10,5К строк сделал за 2-3 сек. Просто чудо!
Спасибо!
 
Ответить
СообщениеGustav, спасибо огромное! Работает.

Не знаю, правда, насколько будет быстро.

Работает быстро, по мне так очень быстро! 10,5К строк сделал за 2-3 сек. Просто чудо!
Спасибо!

Автор - DyadyaVadya
Дата добавления - 25.12.2019 в 12:23
  • Страница 1 из 1
  • 1
Поиск:

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