Вот что я хотел бы сделать:сравнения и копирования данных между рабочими листами
- IF
- клетки Н листа А = ячейки Е рабочего листа В (содержат слова) и
- Ячейка J рабочего листа A = ячейка H рабочего листа B (содержит номера) и
- cell K of works Heet А = ячейка I из рабочего листа В (содержат цифры)
- ТОГДА
- копию ячейки вывода из рабочего листа А к ячейке л рабочего листа В (содержат числа)
Другими словами:
- Если H2, J2, K2 листа A = E 1, H1, I1 рабочего листа B, затем скопируйте O2 рабочего листа A в L1 рабочего листа B.
- Если H3, J3, K3 листа A = E5, H5, I5 листа B, затем скопируйте O3 листа A в L5 рабочего листа B.
Макрос, который я хочу, должен совпадать и скопировать для всего листа A и B. Данные из листа A должны использоваться только один раз.
Это то, что у меня есть до сих пор, но оно, похоже, не работает.
Dim sh1 As Worksheet, sh2 As Worksheet
Dim j As Long, i As Long, lastrow As Long
Set sh1 = Worksheets("Worksheet A")
Set sh2 = Worksheets("Worksheet B")
lastrow = sh1.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lastrow
j = (i - 2) * 4 + 1
If sh1.Cells(i, "H").Value = sh2.Cells(j, "E").Value And _
sh1.Cells(i, "J").Value = sh2.Cells(j, "H").Value And _
sh1.Cells(i, "K").Value = sh2.Cells(j, "I").Value Then
sh1.Cells(i, "O").Copy sh2.Cells(j, "L")
End If
j = j + 4
Next
Попробуйте эту подпрограмму. Протестировано и работает для меня для вашего описания проблемы. –
Файл - это только эта подпрограмма и два листа с значениями в соответствующих ячейках, поэтому она должна работать только для вас. Может быть, есть недостаток в вашей логике или предположениях о ваших данных? Являются ли соответствующие строки в Рабочем листе В действительно в строках 1, 5, 9, 13, 17 и т. Д.? –
oic i thats the problem .. нет соответствующих строк в Worksheet B (sry im new к этому ..) Как я могу изменить его таким образом, чтобы каждая строка листа A соответствовала любой строке в листе B ? – nsy