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

Вход

Регистрация

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

 

= Мир MS Excel/Необходимо по двум параметрам копировать данные с двух листо - Мир MS Excel

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

2016
Привет всем. недавно начал изучать VBA, нужна помощь, не понимаю, что не так с кодом. необходимо в таблице по двум условиям, расположенным по горизонтали и вертикали использовать их как условия для поиска значения на втором листе и вставлять в таблицу на 1 листе в соотвествующие ячейки. попробовал сам написать, почему то не переходит на следующие ячейки. кто может посмотрите, помогите советом, что не так. всем Пис
К сообщению приложен файл: 6751184.xlsm (28.2 Kb)
 
Ответить
СообщениеПривет всем. недавно начал изучать VBA, нужна помощь, не понимаю, что не так с кодом. необходимо в таблице по двум условиям, расположенным по горизонтали и вертикали использовать их как условия для поиска значения на втором листе и вставлять в таблицу на 1 листе в соотвествующие ячейки. попробовал сам написать, почему то не переходит на следующие ячейки. кто может посмотрите, помогите советом, что не так. всем Пис

Автор - leer
Дата добавления - 06.12.2023 в 10:54
Nic70y Дата: Среда, 06.12.2023, 12:27 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8984
Репутация: 2359 ±
Замечаний: 0% ±

Excel 2010
вариант с "вычислить"
[vba]
Код
Private Sub CommandButton1_Click()
    a = Range("A1").CurrentRegion.Rows.Count
    b = Range("A1").CurrentRegion.Columns.Count
    i = Sheets("Лист2").Cells(Rows.Count, "a").End(xlUp).Row
    For Each c In Range(Cells(2, 2), Cells(a, b))
        d = c.Row
        e = c.Column
        h = """" & Cells(d, 1).Value & "|" & Cells(1, e).Value & """"
        k = "&" & """|""" & "&"
        j = Evaluate("IFERROR(MATCH(" & h & ",Лист2!A1:A" & i & k & "Лист2!B1:B" & i & ",),"""")")
        If IsNumeric(j) Then
            c.Value = Sheets("Лист2").Range("c" & j).Value
        Else
            c.Value = ""
        End If
    Next
End Sub
[/vba]
К сообщению приложен файл: 411.xlsm (20.1 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениевариант с "вычислить"
[vba]
Код
Private Sub CommandButton1_Click()
    a = Range("A1").CurrentRegion.Rows.Count
    b = Range("A1").CurrentRegion.Columns.Count
    i = Sheets("Лист2").Cells(Rows.Count, "a").End(xlUp).Row
    For Each c In Range(Cells(2, 2), Cells(a, b))
        d = c.Row
        e = c.Column
        h = """" & Cells(d, 1).Value & "|" & Cells(1, e).Value & """"
        k = "&" & """|""" & "&"
        j = Evaluate("IFERROR(MATCH(" & h & ",Лист2!A1:A" & i & k & "Лист2!B1:B" & i & ",),"""")")
        If IsNumeric(j) Then
            c.Value = Sheets("Лист2").Range("c" & j).Value
        Else
            c.Value = ""
        End If
    Next
End Sub
[/vba]

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

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