2016-04-11 2 views
0

У меня есть два листазначения вставки из одного листа к другому

PRINTSCREEN

В sheet1 У меня есть некоторые коды, которые повторяют. Во втором листе у меня есть список кодов, который появляется только один раз и содержит, кроме других, коды из листов1.

Я хочу создать функцию в VBA, которая ищет в sheet2 для значения из столбца «code» из листа 1 и для каждого кода из листа 1. Я хочу вставить в столбцы 4 и 5 значения из столбцов 2 и 4 столбцов к найденной строке.

Я пытался что-то, но я новичок:

Dim FindRowNumber As Long 
For Each rw In ActiveSheet.Rows 
FindRowNumber = Sheet2.Range("A1:F1000").Value.Find(What:=Cells(rw.Row, 1), LookIn:=xlValues) 
GetValue1 = Sheet2.Cells(FindRowNumber , 4) 
GetValue2 = Sheet2.Cells(FindRowNumber , 5) 
Cells(rw.Row, 4).Value =GetValue1 
Cells(rw.Row, 5).Value =GetValue2 
Exit For 
+2

Можете ли вы не просто использовать 'VLOOKUP '? –

+0

Всегда указывайте VBA, какие листы вы используете при использовании диапазонов (в том числе '.Cells()'): 'FindRowNumber = Sheet2.Range (« A1: F1000 »). Value.Find (What: = Sheet2. Ячейки (rw.Row, 1), LookIn: = xlValues) '. – BruceWayne

ответ

1

Эй :) Я не думаю, что вам нужно VBA для этого. Вы можете просто использовать VLOOKUP в столбцах 4 или 5, чтобы вытащить соответствующие значения из листа 1. Что-то вроде = VLOOKUP (A1, Sheet1! $ A $ 1: $ A $ 10,1, FALSE)

+0

@Boniette - чтобы добавить JKnapp, ваш код в столбце A должен быть уникальным (иначе 'VLOOKUP' просто найдет первый. (Похоже, ваши данные имеют точные повторы, так что там есть). Не забудьте' FALSE '- это означает точное совпадение. – micstr

Смежные вопросы