You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修改VBA代码:实现30秒间隔新增数据行置顶(起始行33)

修改VBA代码实现最新记录插入第33行顶部

现有VBA代码每30秒将数据记录到FYRNIFTY工作表,当前逻辑是在已有数据下方追加新行。需要调整为:将包含A列时间戳的最新记录插入到第33行顶部,原有记录自动下移,数据记录起始位置为A列第33行。

修改后的完整代码

Sub LogValuesEvery30Seconds()
    Dim ws As Worksheet
    Dim targetRow As Long
    
    ' 指定目标工作表
    Set ws = ThisWorkbook.Sheets("FYRNIFTY")
    targetRow = 33 ' 固定插入到第33行
    
    ' 在第33行插入新行,原有行自动下移
    ws.Rows(targetRow).Insert Shift:=xlDown
    
    ' 写入时间戳到A列目标行
    ws.Cells(targetRow, "A").Value = Now()
    
    ' 写入各列计算后的数据
    ws.Cells(targetRow, "B").Value = ws.Range("K13").Value - ws.Range("C13").Value
    ws.Cells(targetRow, "C").Value = ws.Range("K14").Value - ws.Range("C14").Value
    ws.Cells(targetRow, "D").Value = ws.Range("K15").Value - ws.Range("C15").Value
    ws.Cells(targetRow, "E").Value = ws.Range("K16").Value - ws.Range("C16").Value
    ws.Cells(targetRow, "F").Value = ws.Range("K17").Value - ws.Range("C17").Value
    ws.Cells(targetRow, "G").Value = ws.Range("K18").Value - ws.Range("C18").Value
    ws.Cells(targetRow, "H").Value = ws.Range("K19").Value - ws.Range("C19").Value
    
    ' 30秒后再次执行本过程,修正原代码的语法错误
    Application.OnTime Now + TimeValue("00:00:30"), "LogValuesEvery30Seconds"
End Sub

关键修改点

  • 移除原代码中查找最后一行的逻辑,直接固定目标插入行为33
  • 添加Rows.Insert语句,在第33行插入空白行,原有数据自动下移
  • 修正原代码中Application.OnTime的语法缺失,补全需调用的过程名称字符串
  • 所有数据写入操作直接指向第33行(插入新行后该行即为空白,无需再计算行号)

内容的提问来源于stack exchange,提问作者Mohammad Haneef Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:45:33