Я работаю над этим проектом некоторое время и чувствую, что подхожу так близко, но сталкиваюсь с проблемами в конце. Я вытащил кусочки этого кода из разных источников. Я счастлив сказать, что я не получаю никаких ошибок. К сожалению, я тоже не получаю результатов.
У меня есть два листа, один из которых содержит статические данные (основной), а другой обновляется еженедельно в режиме копирования / вставки (источник). Я пытаюсь сопоставить объединенные данные из основного в исходный и скопировать определенные ячейки в соответствии. когда я запускаю макрос, я получаю результаты в одной строке из 50. Внутренний цикл продолжается до самого конца листа, но внешний цикл, кажется, не меняет строку на целевом листе (основной). Я не совсем уверен, как заполняется одна строка. Я знаю, что я что-то здесь упускаю, но что?
Dim wsSource As Worksheet
Dim wsMain As Worksheet
Dim rngs As Variant
Dim rngm As Variant
Dim srow As Integer
Dim mrow As Integer
Dim i As Long
Dim lastrow As Long
Set wsSource = Worksheets("Source")
Set wsMain = Worksheets("Main")
Set rngs = wsSource.Range("L2")
Set rngm = wsMain.Range("L2")
'Clear old data
wsMain.Range("D2:L1500").ClearContents
wsSource.Range("L2:L1500").ClearContents
wsMain.Range("L2:L" & Range("A65000").End(xlUp).Row).FormulaR1C1 = "=CONCATENATE(RC[-11],RC[-10],RC[-9])"
wsSource.Range("L2:L" & Range("A65000").End(xlUp).Row).FormulaR1C1 = "=CONCATENATE(RC[-11],RC[-10],RC[-9])"
lastrow = Range("L" & Rows.Count).End(xlUp).Row
srow = 2
mrow = 2
Do Until rngm.Offset(mrow, 0).Value <> "" And rngm.Offset(mrow, 1).Value <> ""
Do Until rngs.Offset(srow, 0).Value <> "" And rngs.Offset(mrow, 1).Value <> ""
If (rngs.Offset(srow, 0).Value = rngm.Offset(mrow, 0).Value) Then
rngm.Offset(mrow, -8).Value = rngs.Offset(srow, -8).Value
rngm.Offset(mrow, -7).Value = rngs.Offset(srow, -7).Value
rngm.Offset(mrow, -6).Value = rngs.Offset(srow, -6).Value
rngm.Offset(mrow, -5).Value = rngs.Offset(srow, -5).Value
rngm.Offset(mrow, -4).Value = rngs.Offset(srow, -4).Value
rngm.Offset(mrow, -3).Value = rngs.Offset(srow, -3).Value
rngm.Offset(mrow, -2).Value = rngs.Offset(srow, -2).Value
End If
srow = srow + 1
Loop
mrow = mrow + 1
Loop
Я буду рад загрузить книгу, если есть способ сделать это