尝试计算一个范围的最后 12 小时内的 1 小时范围 VBA

Trying to calculate a 1hr range within the last 12hrs of a range with VBA

所以我正在尝试根据过去 12 小时的数据计算 1 小时的测试温度。有时这个数据可能是几天,有时可能只有 24 小时。这些语句似乎 select 数据集的最后 12 个内的 1hr 范围,但是 J3 中的公式 returns a -1 无论数据是什么。如果我为 300 行用值 5 填充 J 列,它返回 -1。我尝试的代码的一些迭代返回 0。每行是 5 分钟,因此这是 1 小时的偏移值的来源。

这是我目前的情况,我不确定是什么问题。我是 VBA.

的新手
Sub TestTemp_Cal()
    
    Dim LastRow As Long
    Dim HrRng As Long
    
    'Selecting the 1hr range in the last 12 hrs of data
    LastRow = Application.ActiveSheet.Range("J6").End(xlDown).Select
    
    HrRng = Range(ActiveCell.Offset(-27, 0), ActiveCell.Offset(-39, 0)).Select
     
    'Calculating the Test Temp
    Range("J3").Formula = "=ROUND(AVERAGE(" & HrRng & "),0)"
     
End Sub

希望对此有所了解。

只是猜测,没有看到任何实际数据...

Sub TestTemp_Cal()
    
    Dim ws As Worksheet, c As range, rng As range

    Set ws = Activesheet
    Set c = ws.Cells(Rows.Count, "J").End(xlUp)

    If c.Row > 44 Then 'make sure you can offset at least 39 rows
        Set rng = c.Offset(-39).Resize(12) '39 rows up and resize to 12 rows
        ws.Range("J3").Formula = "=ROUND(AVERAGE(" & rng.address(False, False) & "),0)"
    End If
    
End Sub