Я пытаюсь манипулировать набором данных, перемещая определенные наборы данных из sheet1
в sheet2
. У меня есть заголовок, состоящий из 16 элементов на sheets2
, они все время одни и те же заголовки.
Я собираю данные и записываю их в sheet1
. Они организованы в два столбца:
Столбец A: состоит из заголовков (по горизонтали, в строках - 57 элементов),
Столбец B: состоит из значений этих заголовков.
Теперь мне нужно выбрать заголовок из sheet2
и сопоставить его с заголовком sheet1
, если совпадение найдено, затем скопируйте значения, соседние с этот заголовок в sheet1
и вставьте его под тем же заголовком в sheet2
в следующей доступной строке.
Для экономии места у меня есть частичный снимок экрана из sheet1
и sheet2
, и у меня есть код VBA, который работает для первых 5 элементов, а затем завершается. У меня нет ошибок, я просто не передаю все 16 элементов в sheet2
.
Sub headerLookup()
Dim ShtONE As Worksheet
Dim ShtTWO As Worksheet
Dim shtONEHead As Range
Dim shtTWOHead As Range
Dim headerONE As Range
Dim headerTWO As Range
Set ShtONE = Sheets("Sheet1")
Set ShtTWO = Sheets("Sheet2")
Dim lr As Long
Dim lc As Long
Dim lRow As Long
'get all of the headers in the first sheet, in Column 1(Horizantal) to get 57 rows
lr = ShtONE.Cells(Rows.Count, 1).End(xlUp).Row
Set shtONEHead = ShtONE.Range("A1", ShtONE.Cells(lr, 1))
'get all of the headers in second sheet, 16 columns
lc = ShtTWO.Cells(1, Columns.Count).End(xlToLeft).Column
Set shtTWOHead = ShtTWO.Range("A1", ShtTWO.Cells(1, lc))
'loop through Rows and find matching values on Columns then copy the value of the adjacent cell and paste it on sheet2
For Each headerTWO In shtTWOHead
For Each headerONE In shtONEHead
If headerTWO.Value = headerONE.Value Then
headerONE.Offset(0, 1).Copy
headerTWO.Offset(1, 0).PasteSpecial xlPasteAll
Application.CutCopyMode = False
GoTo Next_headerTWO
End If
Next headerONE
Next_headerTWO:
Next headerTWO
End Sub