У меня есть две таблицы. Лист1 содержит данные в B3: W296, а Лист2 содержит данные в альтернативных столбцах B3: B23, D3: D23, .., T3: T23. Теперь я должен заполнить пустые альтернативные столбцы на Листе 2 (C3: C23, E3: E23, .., U3: U23)
Значения Sheet2 должны быть заполнены как,
Sheet2.C3.value = VARP ("Sheet1" .Range (C3: C16))
...
Sheet2.U3.value = VARP ("Лист1". Диапазон (U3: U16))
Для строки 4 в Sheet2 формула должна быть изменена следующим образом:
Sheet2.C4.value = VARP ("Sheet1" .Range (C17: C30))
...
Sheet2.U4.value = VARP («Лист1». Диапазон (U17: U30))
Я должен сделать это в разных файлах, поэтому количество строк и столбцов на обоих листах может отличаться. Поэтому я не могу дать номера строк и столбцов в явном виде.
Я начал писать следующий код, но застрял,
Dim lRow, lRow2 As Long
Dim lCol, lCol2 As Long
Dim i, j As Integer
lRow = ThisWorkbook.Worksheets("Sheet2").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
lCol = ThisWorkbook.Worksheets("Sheet2").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
lRow2 = ThisWorkbook.Worksheets("Sheet1").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
lCol2 = ThisWorkbook.Worksheets("Sheet1").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
For i = 3 To lRow
For j = 3 To lCol - 2 Step 2
ThisWorkbook.Worksheets("Sheet2").Range(j & i).Value = VarP(ThisWorkbook.Worksheets("Sheet1").Range())
Next j
Next i
Я не уверен, что делать с циклом for для этого случая.
Любая помощь будет принята с благодарностью. Заранее спасибо.