Excel,每60天删除第n行

时间:2012-09-24 12:54:19

标签: excel-vba vba excel

我为传感器提供了巨大的Excel数据性能。数据包括时间序列!并且每5秒记录一次。一般来说,我有17281 rows个数据,这只是一天的记录。 我需要对数据进行可视化,但每隔5秒钟记录一次,因此我希望将时间序列从每5秒缩放到每5分钟一次!

我尝试删除额外的行...

5 minutes = 60 "5 second"

所以我需要删除60 row并保留61th,然后删除下一个60并保留第121个等等...

我尝试使用VB代码方法,但我做不到!!!

请有人帮忙:(

这是我录制的宏,当我尝试前几行...我希望它可以给出一些问题的清晰图像......


Sub MacroDeleteTest1()
'
' MacroDeleteTest1 Macro
'

'
    Rows("2:2").Select
    ActiveWindow.SmallScroll Down:=31
    Rows("2:60").Select
    Selection.Delete Shift:=xlUp
    Rows("3:3").Select
    ActiveWindow.SmallScroll Down:=34
    Rows("3:61").Select
    Selection.Delete Shift:=xlUp
    Rows("4:4").Select
    ActiveWindow.SmallScroll Down:=33
    Rows("4:62").Select
    Selection.Delete Shift:=xlUp
    Rows("5:5").Select
    ActiveWindow.SmallScroll Down:=35
    Rows("5:63").Select
    Selection.Delete Shift:=xlUp
    Rows("6:6").Select
    ActiveWindow.SmallScroll Down:=34
    Rows("6:64").Select
    Selection.Delete Shift:=xlUp
    Rows("7:7").Select
End Sub

谢谢...

1 个答案:

答案 0 :(得分:1)

像这样的东西。将范围rStart设置为数据的第一个单元格。

Sub delete60()

Dim rStart As Range
Const cCOLF As Long = 5    ' Offset across of column F

    Set rStart = Sheet1.Range("A1")

    Do While rStart.Offset(1, 0).Value <> ""
        With Range(rStart.Offset(1, cCOLF), rStart.Offset(59, cCOLF))
            rStart.Offset(0, cCOLF).Value = Evaluate("SUM(" & .Address & ")")
            .EntireRow.Delete
        End With
        Set rStart = rStart.Offset(1, 0)
    Loop

End Sub