用VBA设置多个工作表单元格公式

工作中把工作工作台帐的公式错误的删除了,只能用VBA快速重新设置。

Sub AddFormulas()
Dim i As Integer
Dim j As Integer
Dim sheetName As String
Dim ws As Worksheet

For i = 3 To 31
   sheetName = "4月" & i & "日"
   
   On Error Resume Next
     Set ws = worksheets(sheetName)
   On Error GoTo 0
   
   If ws Is Nothing Then Exit Sub
   For j = 2 To 52
      ws.Range("J" & j).Formula = "=B" & j & "-I" & j & "+D" & j & "+F" & j
   Next j
   
Next i

End Sub

下面是Deepseek给出的优化代码,看不懂,没有用。

Sub AddFormulas_Optimized()
    Dim i As Integer
    Dim sheetName As String
    Dim ws As Worksheet

    For i = 3 To 31
        sheetName = "4月" & i & "日"
        
        On Error Resume Next
        Set ws = Worksheets(sheetName)
        On Error GoTo 0
        
        ' 仅当工作表存在时处理
        If Not ws Is Nothing Then
            ' 一次性设置 J2:J52 区域的公式,使用 R1C1 样式自动适应行号
            ws.Range("J2:J52").FormulaR1C1 = "=RC2-RC9+RC4+RC6"
            Set ws = Nothing   ' 重置对象,便于下一次循环
        End If
    Next i
End Sub
posted @ 2026-04-02 02:19  孤独的小苗  阅读(0)  评论(0)    收藏  举报