Первый пользователь здесь.Я также новичок, пытающийся написать программу на VBA для Excel 2010, и вот что мне нужно сделать.
У меня есть книга, содержащая два листа, Sheet1, называемая «Процесс» (есть столбец A с заголовком «Item ") и Sheet2 с именем" Master "(столбец A с заголовком" Item "и столбец B с заголовком" Operation ")
Мне нужно сравнить эти два столбца A, если есть какие-либо данные, соответствующиеВы хотите скопировать ВСЕ данные из столбца B «Операция» из листа «Master» и поместить их в столбец B в листе «Process».
Код от Мохита Бансала работает отлично, но после того, как я пытаюсь привести код в реальное состояние рабочего листа, я сталкиваюсь с новой проблемой: если в столбце «Элемент» есть те же данные, этокопировать только для первых данных.
Любая помощь в выяснении того, как обойти это, будет принята с благодарностью.
При этом я редактирую на основе реального состояния рабочего листа.
Лист1 "Процесс"
-------------------------
|Column A |Column B |
|"Item" |"Operation"|
-------------------------
|20YStandard| |
|20Y | |
|20Y | |
|20Y | |
|20YF0Blank | |
|20YF0 | |
|20YF0 | |
|20YFGAfter | |
|20YFG | |
|20YFG | |
|20YStandard| |
|20Y | |
|20Y | |
|20Y | |
|20YF0Blank | |
|20YF0 | |
|20YF0 | |
|20YFGAfter | |
|20YFG | |
|20YFG | |
Лист2 "Мастер"
-------------------------
|Column A |Column B |
|"Item" |"Operation"|
-------------------------
|20Y |MLM1 |
|20Y |IQTM1 |
|20Y |HBM1 |
|20YF0 |QT1 |
|20YF0 |SB1 |
|20YFG |FG7 |
|20YFG |SCR1 |
|21YF0 |QT2 |
|21YF0 |SB2 |
|21YF0 |MG2 |
|21YFG |FG8 |
|21YFG |SCR2 |
Фактический результат =
Лист1 "Процесс"
-------------------------
|Column A |Column B |
|"Item" |"Operation"|
-------------------------
|20YStandard| |
|20Y |MLM1 |
|20Y |IQTM1 |
|20Y |HBM1 |
|20YF0Blank | |
|20YF0 |QT1 |
|20YF0 |SB1 |
|20YFGAfter | |
|20YFG |FG7 |
|20YFG |SCR1 |
|20YStandard| |
|20Y |Not copied |
|20Y |Not copied |
|20Y |Not copied |
|20YF0Blank | |
|20YF0 |Not copied |
|20YF0 |Not copied |
|20YFGAfter | |
|20YFG |Not copied |
|20YFG |Not copied |
Sub Button2_Click()
pr = Worksheets("Process").Range("A2:B1000").Value
ma = Worksheets("Master").Range("A2:B8008").Value
Range("B:B").ClearContents
For i = LBound(pr, 1) To UBound(pr, 1)
For j = LBound(ma, 1) To UBound(ma, 1)
If ma(j, 1) = pr(i, 1) Then
Worksheets("Process").Range("B" & i + 1).Value = ma(j, 2)
ma(j, 1) = "---"
Exit For
End If
Next j
Next i
End Sub
Ожидаемый результат =
Лист1 «Процесс»
-------------------------
|Column A |Column B |
|"Item" |"Operation"|
-------------------------
|20YStandard| |
|20Y |MLM1 |
|20Y |IQTM1 |
|20Y |HBM1 |
|20YF0Blank | |
|20YF0 |QT1 |
|20YF0 |SB1 |
|20YFGAfter | |
|20YFG |FG7 |
|20YFG |SCR1 |
|20YStandard| |
|20Y |MLM1 |
|20Y |IQTM1 |
|20Y |HBM1 |
|20YF0Blank | |
|20YF0 |QT1 |
|20YF0 |SB1 |
|20YFGAfter | |
|20YFG |FG7 |
|20YFG |SCR1 |