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

Excel VBA需求:自动记录公式重算结果至另一工作表连续行

解决方案

适合的事件:Worksheet_Calculate

因为Worksheet_Change仅在单元格手动编辑或外部链接更新时触发,随机公式重算导致的结果变化不会触发该事件。而Worksheet_Calculate会在**工作表完成任何计算(包括随机函数重算)**后自动触发,完全匹配你的需求。

修改后的代码

将原代码替换为以下内容,直接写入Sheet1的代码模块中:

Private Sub Worksheet_Calculate()
    Dim ws As Worksheet
    Dim lastRow As Long
    Set ws = Sheets("Sheet5")
    
    ' 找到Sheet5 A列最后一个非空单元格的行号
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 如果A列是空的(首次记录),从A1开始;否则追加到下一行
    If lastRow = 1 And ws.Range("A1").Value = "" Then
        ws.Range("A1").Value = Me.Range("S255").Value
    Else
        ws.Range("A" & lastRow + 1).Value = Me.Range("S255").Value
    End If
End Sub

代码说明

  • Worksheet_Calculate:每次工作表计算完成后触发,不管是手动重算(F9)还是自动重算。
  • lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row:定位A列最后一个有内容的单元格,确保每次都追加到新行。
  • 额外判断A1是否为空:避免首次记录时跳过A1直接写入A2。

内容的提问来源于stack exchange,提问作者Bao bab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:53