Excel Worksheet_Change 事件不起作用

标签 excel vba

我正在尝试编写一个宏来更改任何列 应自动保存工作表。

我的 Excel 工作表扩展到 G25

我尝试了这个,但它不起作用:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Target.Worksheet.Range("G25")) Is Nothing Then
        ActiveWorkbook.Save
End Sub

我已将其保存在 ThisWorkBook 下。

感谢任何帮助。

最佳答案

ThisWorkbook 下,该处理程序称为 Workbook_SheetChange,它接受两个参数 Sh(类型为 Object)和目标(范围)。所以,你的代码在那里不起作用。
如果您将代码放入所需的工作表(例如 Sheet1)而不是 ThisWorkbook 中,请放入 End If 并更改范围到“A1:G25”(代表从第1行A列到第25行第25列的正方形),它应该可以工作。 这做到了:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Target.Worksheet.Range("A1:G25")) Is Nothing Then
        MsgBox "changed"
    End If
End Sub

为了完整起见,在ThisWorkbook下,这将起作用:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Target.Worksheet.Range("A1:G25")) Is Nothing Then
        MsgBox "changed"
    End If
End Sub

关于Excel Worksheet_Change 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071931/

相关文章:

excel - 使用公式R1C1内的变量进行抵消

excel - 当我在特定 Outlook 文件夹中打开带有主题的特定邮件时,自动打开附件的副本

php - 如何将excel的PV函数转换为php

mysql - 这个 excel 到 mysql 的转换可能吗

excel - 为 Excel VBA 创建常量库的理想方法是什么?

vba - Excel 邮件合并运行时错误 4198

excel - UDF中两个数组之间的最大差异

excel - 通过 vba 挂锁符号

excel - 导入数据覆盖下拉列表数据

excel - VBA COUNTIFs公式引用另一个工作表中的动态范围