Найдите тексты с одного листа и используйте их для замены на другом листе

В моем файле excel есть 2 листа (Лист 1 и 2).

В Листе 1 есть 3 столбца – Код, ID и текст. Здесь более 100 записей.

В листе 2 есть куча данных.

Я пытаюсь написать VBA, что:

1) находит «код» (лист1) из второго столбца Sheet2;

2) находит «ID» (Sheet1) из третьей строки Sheet2 и получает номер столбца;

3) Вставить «текст» (Sheet1) в соответствующую строку и столбец в Sheet2.

Я записал приведенный ниже код, но он не вставляет «текст» в соответствующий столбец – скорее пасты во всех столбцах, соответствующих «идентификаторам»,

Пожалуйста помогите. благодаря

Private Sub CommandButton1_Click() Dim wb As Workbook Dim sht As Worksheet Dim rng1 As Range Dim rngCell_1 As Range Dim rngCell_2 As Range Dim rngCell_3 As Range Set wb = ActiveWorkbook Set sht2 = ActiveWorkbook.Sheets("Sheet2") Set sht = wb.Sheets("Sheet1") With sht2 lastrow = .Cells(Rows.Count, "A").End(xlUp).Row lastrowcell = sht.Cells(Rows.Count, "A").End(xlUp).Row For Row = 4 To lastrow For Each rngCell_2 In sht.Range("B2:B" & lastrowcell) Set rng1 = sht2.UsedRange.Find(rngCell_2, , xlValues, xlWhole) For Each rngCell_1 In sht.Range("A2:A" & lastrowcell) For Each rngCell_3 In sht.Range("C2:C" & lastrowcell) If (.Cells(Row, 2) = rngCell_1) Then .Cells(Row, rng1.Column) = rngCell_3 .Cells(Row, rng1.Column).Font.Color = 255 End If Next rngCell_3 Next rngCell_1 Next rngCell_2 Next Row End With End Sub 

Я бы предпочел Find() здесь вместо вложенных циклов:

 Private Sub CommandButton1_Click() Dim wb As Workbook Dim sht1 As Worksheet, sht2 As Worksheet Dim rw As Range, f1 As Range, f2 As Range Set wb = ActiveWorkbook Set sht1 = wb.Sheets("Sheet1") Set sht2 = wb.Sheets("Sheet2") Set rw = sht1.Range("A2:C2") Do While Application.CountA(rw) = 3 Set f1 = sht2.Columns(2).Find(rw.Cells(1), lookat:=xlWhole) If Not f1 Is Nothing Then Set f2 = sht2.Rows(2).Find(rw.Cells(2), lookat:=xlWhole) If Not f2 Is Nothing Then sht2.Cells(f1.Row, f2.Column).Value = rw.Cells(3).Value End If End If Set rw = rw.Offset(1, 0) Loop End Sub 
Interesting Posts

Slicer не работает с безопасностью группы SSAS

Как преобразовать cell vlookup в VBA

В VBA можно ли установить диапазон относительно другого диапазона?

Создание временного ряда обновления с использованием живой загрузки в excel

Формула, которая будет суммировать один столбец при условии другого столбца

Почему Perl's Spreadsheet :: ParseExcel никогда не возвращается из анализатора $ parser-> ('test.xls')?

Суммирование итогов по нескольким листам на основе имени человека

Эксклюзивный выпуск VBA

Фильтрация даты с помощью PowerBI

Проверка двух слов из ячейки с использованием двух других столбцов Microsoft Excel

Как сохранить формат даты в конкретной формуле?

Ссылаясь на предопределенный диапазон через формулу r1c1

Запрошенная операция требует объекта OLE DB Session … – Подключение Excel к SQL-серверу через ADO

Реорганизация листа Excel, один столбец на многие столбцы

Включить разметку страницы при копировании и вставке из IE в Word

Давайте будем гением компьютера.