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

Вход

Регистрация

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

 

= Мир MS Excel/Формула ВПР сю макроса до конца таблицы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Формула ВПР сю макроса до конца таблицы (Формулы/Formulas)
Формула ВПР сю макроса до конца таблицы
Andrey2607 Дата: Вторник, 22.01.2019, 16:39 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Необходимо создать макрос, аналогичный функции ВПР. Таблицы будут с разным количеством строк, что должно быть учтено в макросе.
Макрос с формулой записал, но не знаю как адаптировать его под изменяемое количество строк.
Прошу вашей помощи. Пример прикладываю
Заранее спасибо)
К сообщению приложен файл: 1128570.xlsm (15.1 Kb)
 
Ответить
СообщениеДобрый день!
Необходимо создать макрос, аналогичный функции ВПР. Таблицы будут с разным количеством строк, что должно быть учтено в макросе.
Макрос с формулой записал, но не знаю как адаптировать его под изменяемое количество строк.
Прошу вашей помощи. Пример прикладываю
Заранее спасибо)

Автор - Andrey2607
Дата добавления - 22.01.2019 в 16:39
_Boroda_ Дата: Вторник, 22.01.2019, 18:05 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если функцию ВПР сделать макросом, то в итоге получится еще дольше, чем обычным ВПР на листе. А вот через словарик на больших объемах должно быть побыстрее

[vba]
Код
Sub TipaVPR()
    r0_ = 2
    c0_ = 1
    n_ = Cells(Rows.Count, c0_).End(3).Row - r0_ + 1
    c1_ = 2
    ar = Cells(r0_, c0_).Resize(n_)
    ReDim arz(1 To n_, 1 To 1)
    With Sheets("Лист1")
        r00_ = 2
        c00_ = 1
        n0_ = .Cells(.Rows.Count, c00_).End(3).Row - r00_ + 1
        ar0 = .Cells(r00_, c00_).Resize(n0_, 2)
    End With
    Set slov = CreateObject("Scripting.Dictionary")
    With slov
        For i = n0_ To 1 Step -1
            .Item(ar0(i, 1)) = ar0(i, 2)
        Next i
        For i = 1 To n_
            arz(i, 1) = .Item(ar(i, 1))
        Next i
    End With
    Cells(r0_, c1_).Resize(n_) = arz
End Sub
[/vba]
К сообщению приложен файл: 1128570_1.xlsm (19.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли функцию ВПР сделать макросом, то в итоге получится еще дольше, чем обычным ВПР на листе. А вот через словарик на больших объемах должно быть побыстрее

[vba]
Код
Sub TipaVPR()
    r0_ = 2
    c0_ = 1
    n_ = Cells(Rows.Count, c0_).End(3).Row - r0_ + 1
    c1_ = 2
    ar = Cells(r0_, c0_).Resize(n_)
    ReDim arz(1 To n_, 1 To 1)
    With Sheets("Лист1")
        r00_ = 2
        c00_ = 1
        n0_ = .Cells(.Rows.Count, c00_).End(3).Row - r00_ + 1
        ar0 = .Cells(r00_, c00_).Resize(n0_, 2)
    End With
    Set slov = CreateObject("Scripting.Dictionary")
    With slov
        For i = n0_ To 1 Step -1
            .Item(ar0(i, 1)) = ar0(i, 2)
        Next i
        For i = 1 To n_
            arz(i, 1) = .Item(ar(i, 1))
        Next i
    End With
    Cells(r0_, c1_).Resize(n_) = arz
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.01.2019 в 18:05
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Формула ВПР сю макроса до конца таблицы (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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