У меня есть Рабочая тетрадь с двумя листами. Давайте назовем их «Рабочий лист 1» и «Рабочий лист 2». В рабочем листе 1 у меня есть столбец с переменной, где я отставал от переменной (используя смещение) i раз. Я каждый раз сохраняю задержку и R ^ 2 в массиве. Всякий раз, когда я задерживаю переменную, мне нужно вставить данные из последней строки в столбце B на листе 2. При увеличении переменной i строка, из которой я копирую данные (лист 2), должна увеличиваться с тем же шагом, что и i (например,Для i = 1 до 10) отрицательным образом (смещение (-i) снизу вверх - поэтому я думаю, что строки должны уменьшаться) - Например,когда я = 2, я хочу скопировать вторую строку снизу на листе 2 и вставить в верхнюю строку листа 1.
По мере увеличения строки в листе 1 должны быть смещены на 1так что, по сути, заполнение / замена пустой ячейки на листе 1 значением строки на листе 2.
Я пробовал разные вещи, но он не копирует и не вставляет, оставляя пустые ячейки или копируя одну ячейку на листе 2и вставляя его в каждую строку в листе 1
Sub Regression()
Dim Y, X As Range
Dim MyArray As Variant
Dim AWF As WorksheetFunction
Dim DefaultRate, Data As Worksheet
Dim i As Integer
Set AWF = Application.WorksheetFunction
Set DefaultRate = Workbooks("Main sheet.xlsm").Sheets("DefaultRate")
Set Data = Workbooks("Main sheet.xlsm").Sheets("Data")
Set Y = DefaultRate.Range("B2:B55")
Set X = DefaultRate.Range("D2:D55")
ReDim MyArray(5, 5)
For i = LBound(MyArray, 1) To UBound(MyArray, 1)
If i = 0 Then
Set X = X.Offset(0)
Data.Range("B" & Rows.Count).End(xlDown).Copy
DefaultRate.Range("D2").PasteSpecial xlPasteValues
Else:
Data.Range("B" & Rows.Count).End(xlDown).Offset(-i).Copy
DefaultRate.Range("D" & 2).Offset(i).PasteSpecial xlPasteValues
End If
MyArray(i, 1) = i
MyArray(i, 2) = AWF.RSq(Y, X)
Cells(1 + i, 7).Value = MyArray(i, 1)
Cells(1 + i, 8).Value = MyArray(i, 2)
Пустая ячейка, созданная функцией смещения, должна быть заменена данными из листа 2, но я не могу заставить ее работать.