我使用以下代码从Excel工作表(Sheet1)中提取值,并每分钟将它们保存到Sheet2中,每分钟自动创建一个新行。
Sub Auto_Open()
Call CopyValues
End Sub
Sub CopyValues()
Dim RowNo As Long
RowNo = Sheets(4).Cells(Rows.Count, 4).End(xlUp).Row + 1
Sheets(4).Cells(RowNo, 2) = Sheets(1).Cells(14, 2)
Sheets(4).Cells(RowNo, 3) = Sheets(1).Cells(14, 3)
Sheets(4).Cells(RowNo, 4) = Sheets(1).Cells(14, 4)
Sheets(4).Cells(RowNo, 5) = Sheets(1).Cells(15, 2)
Sheets(4).Cells(RowNo, 6) = Sheets(1).Cells(15, 3)
Sheets(4).Cells(RowNo, 7) = Sheets(1).Cells(15, 4)
Sheets(4).Cells(RowNo, 8) = Sheets(1).Cells(16, 2)
Sheets(4).Cells(RowNo, 9) = Sheets(1).Cells(16, 3)
Sheets(4).Cells(RowNo, 10) = Sheets(1).Cells(16, 4)
Sheets(4).Cells(RowNo, 11) = Sheets(1).Cells(17, 2)
Application.OnTime Now + TimeValue("00:01:00"), "CopyValues"
End Sub
我无法弄清楚如何执行以下操作:24小时过后我有24x60 = 1440行数据,对于后来的每一分钟,我都要删除第一行将数据下方的所有数据向上移动一行(例如,第2行返回到现在为空的行1,第3行进入第2行,直到第1440行)。我还想在最后一行提供新数据。这样,工作表上最多只有1440行数据。
有谁知道我怎么能这样做?
答案 0 :(得分:0)
maxhob17的答案似乎有效。
我只是在上面代码中的Application.OnTime之前添加了以下代码:
If RowNo > 1440 Then
Rows("2:2").Delete Shift:=xlUp
End If
为了澄清,我删除了第二行而不是第一行,因为我的标题位于第一行。