Excel 自动保存宏

Excel 自动保存宏

我正在尝试创建一个宏,每当特定单元格中的值增加 1 时,它就会自动保存我的 Excel 工作簿。

我有用于在单元格发生变化时自动保存的代码,我将在下面发布;

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
        ThisWorkbook.Save
    End If
End Sub

但是,我似乎无法调整宏代码,使其仅在单元格中的值增加 1 时执行。例如,单元格值为 10,仅当单元格值为 11 时才保存工作簿,依此类推。

谢谢。

答案1

尝试此代码,如果出现任何问题,请恢复。小假设或约束是工作表至少已从数据库刷新一次,并且此后不会删除现有内容,只会在需要时再次刷新。如果您在保存后和关闭前清除数据,然后每次都打开空白工作表,则需要不同的解决方案。

ALT + F11 --> VBA 编辑器 --> ThisWorkbook --> 常规 --> 声明

Public Prev_Val As Variant

Workbook_Open() 事件

Private Sub Workbook_Open()
   ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End Sub

在 Sheet1 或任何 Sheet 代号下 - Worksheet_Change(ByVal Target As Range) 事件。用 Sheet1 或 Sheet2 等任何 Sheet 代号替换 Sheet1。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
    If Sheet1.Range("A2").Value = ThisWorkbook.Prev_Val + 1 Then
        ThisWorkbook.Save

    End If
    ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End If

End Sub

现在,当您打开工作簿时,公共变量 Prev_Val 会将值存储在 A2 中,随后使用它进行比较,并不断将此值更新为 A2 中的最新更新,直到您关闭工作簿。

相关内容