Страницы: 1
RSS
Доработать vba excel макрос по поиску и присвоению значения
 
Здравствуйте, нашел шаблон скрипта, настроил его под свои нужны но хочу доработать его.

Идея заключалась в том, что был изначальный список.
По столбцу C нужно было найти значения из списка и отобразить его в этой же строчке но в другом столбце.

Теперь требуется его доработать, забирать значение не из списка который задаю как
Код
(value = "22300307") Or (value = "22300306") Or (value = "123")

а с другого листа (base), со столбца (B) и присваивать значение с этого же листа столбца ©

Лист base будет пополняться и значений для поиска будет не 3, а 100+

Прошу помочь с вопросом :)

 
В деталях непонятно, можно только гадать что скрывается под
Цитата
inews написал:
и присваивать значение с этого же листа столбца ©
Но вообще нужно делать на словаре и массивах, если работаете на Винде. Или на коллекции и массивах в другом случае.
P.S. Забыл - нечего тут дорабатывать, тут нужно всё писать заново. Из всего кода можно оставить без изменения только 7 строк :(
Изменено: Hugo - 03.10.2019 20:35:00
 
inews, Можно так. Надеюсь разберетесь.
 
Hugo, при выполнении макроса на странице next сейчас забираются данные с
Код
(value = "22300307") Or (value = "22300306") Or (value = "123")

А я хочу забирать данные со страницы (base) столбца B и присваивать на странице (next) в столбец G знания столбца C из страницы (base)

Так должно быть понятнее))

 
Пробую гадать - наверное нужно так:
Код
Sub tt()
    Dim a, i&

    With CreateObject("Scripting.Dictionary")
        a = Sheets("base").[a1].CurrentRegion.value
        For i = 2 To UBound(a)
            .Item(a(i, 2)) = a(i, 3)
        Next

        a = Sheets("next").[a1].CurrentRegion.Columns(3).value
        For i = 1 To UBound(a)
            a(i, 1) = .Item(a(i, 1))
        Next
    End With

    Sheets("next").[a1].CurrentRegion.Columns(3).Offset(, 4).value = a
        '5. Сообщение, чтобы юзер понял, что макрос закончил работу.
    MsgBox "Готово, если ещё не понял :).", vbInformation
End Sub
Страницы: 1
Наверх