Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel VBA中触发工作表更改_Vba_Excel - Fatal编程技术网

在Excel VBA中触发工作表更改

在Excel VBA中触发工作表更改,vba,excel,Vba,Excel,这是一个更一般的问题,但我想知道究竟是什么触发了Excel VBA上的工作簿_SheetChange()。当单元格中的值更改时,它声称会更改,但当您尝试拖动而不是在新单元格中输入值时,宏不会触发。有没有其他方法可以绕过这个问题,或者有没有其他方法可以触发一个宏来检测工作簿中的任何更改?对我来说,在拖放单元格时,似乎会触发更改事件 我正在使用(在“ThisWorkbook”模块中) 您是否确实在使用工作书事件而不是工作工作表事件 编辑:仅当您更改工作表时才应触发短语设置工作簿\u SheetCha

这是一个更一般的问题,但我想知道究竟是什么触发了Excel VBA上的工作簿_SheetChange()。当单元格中的值更改时,它声称会更改,但当您尝试拖动而不是在新单元格中输入值时,宏不会触发。有没有其他方法可以绕过这个问题,或者有没有其他方法可以触发一个宏来检测工作簿中的任何更改?

对我来说,在拖放单元格时,似乎会触发更改事件

我正在使用(在“ThisWorkbook”模块中)

您是否确实在使用工作事件而不是工作工作表事件


编辑:仅当您更改工作表时才应触发短语设置

工作簿\u SheetChange()
,您是说
工作簿\u SelectionChange()
?您所说的“尝试并拖动”是什么意思?你指的是自动填充吗?我很难复制这个。@Burns先生-你想的是
SheetActivate
。请参阅。任何工作表上的任何编辑更改都会触发
工作簿\u SheetChange
,包括拖动或添加/删除公式。当公式因重新计算而更改其值时,不会触发该事件。您可能混淆了sh参数,并且可能没有处理目标是多个单元格的情况。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Debug.Print Now
End Sub