Я пытаюсь выяснить, как установить значение диапазона столбцов на одном листе равным значению диапазона столбцов на другом листе.Я не хочу копировать всю строку, я только нацеливаюсь на определенные столбцы, чтобы не перезаписывать важную информацию внутри других ячеек.
В настоящее время мой код начинается с верхней части листа 1 и переходит на нижнюю.,При каждом значении> 0 в столбце 4 выполняется поиск идентичного значения в столбце 4 листа 2. Если совпадение найдено, я хочу скопировать значения из столбца 10-13 в строке x таблицы 1 в столбец 10-13 столбца yСтрока листа 2.
Я могу выполнить эту работу, сопоставив значение в каждом столбце индивидуально, но не могу найти подходящий метод для назначения значения для диапазона столбцов.Первая строка кода - это то, что у меня сейчас работает.Во второй строке я пытаюсь скопировать диапазон значений столбца.
ws2.Cells(y, 4).Value = ws1.Cells(x, 4).Value
ws2.Range(y, 10:13).Value = ws1.Range(x, 10:13).Value
Я пытался использовать метод Union (), но, возможно, я не уверен, как реализовать его в этой ситуации.Ниже остальная часть моего кода.
Sub Upload()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim ws1LastRow As Long, ws2LastRow As Long
Dim ws1Row As Long, ws2Row As Long
Dim FindRow2 As Range
Application.ScreenUpdating = False
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Sheet1")
Set wb2 = Application.Workbooks.Open("Sheet Address")
Set ws2 = wb2.Worksheets("Master")
ws1LastRow = ws1.Cells(Rows.Count, "A").End(xlUp).Row
ws2LastRow = ws2.Cells(Rows.Count, "A").End(xlUp).Row
For ws1Row = 2 To ws1LastRow
Do While ws1.Cells(ws1Row, 4) <> ""
ws2.Range("D:D").Find(What:=ws1.Cells(ws1Row, 4).Text, _
LookIn:=xlValues).Select
r = ActiveCell.Row
ws2.Cells(r, "B").Value = ws1.Cells(ws1Row, "B").Value
ws1Row = ws1Row + 1
Loop
Next
End Sub