У меня есть набор данных на sheet1, и я пытаюсь принять среднее значение из каждых 48 значений и вставить его на sheet2. Я получаю ошибку времени выполнения «1004»: невозможно получить свойство Average класса WorksheetFunction. Я пробовал искать различные решения, но не смог придумать их. Могу ли я получить помощь с моим кодом. Мой код работал, когда он просто принимал среднее значение и вставлял его на один лист.WorksheetFunction.Average и вставить на новый лист
Dim wb As Workbook
Dim j As Long, i As Long, irow As Integer, lastrow1 As Long, lastcol1 As Long
lastrow1 = Range(Sheets("HalfHour").Cells(5, 5), Sheets("HalfHour").Cells(5, 5).End(xlDown)).Count
lastcol1 = Range(Sheets("HalfHour").Cells(5, 5), Sheets("HalfHour").Cells(5, 5).End(xlToRight)).Count
Set wb = ActiveWorkbook
With Worksheets("Daily")
For j = 5 To lastcol + 5
For i = 5 To lastrow1 + 5 Step 48
wb.Worksheets("Daily").Cells(irow, a - 1).Value = Application.WorksheetFunction.Average(wb.Worksheets("HalfHour").Range(Cells(i, j), Cells(i + 47, j)))
irow = irow + 1
Next i
If Cells(i, j).Value = "" Then
GoTo done
End If
Next j
End With
сделано:
Этот код отлично работает, однако для среднего значения требуется небольшая корректировка 'Set myRange = Range (wb.Worksheets (« HalfHour »). Ячейки (i, j), wb.Worksheets (« HalfHour »)) .Cells (i, j) .Cells (i + 47, j)) ' должен быть ' Set myRange = Range (wb.Worksheets («HalfHour»). Ячейки (i, j), wb.Worksheets (" HalfHour "). Ячейки (i + 47, j))' , но я не совсем понимаю, как использовать myRange, не могли бы вы объяснить, почему его кодирование работает так, но у меня нет? – Bubs