我正在为机器上的运算符(operator)处理 Excel 文件,因此需要对其进行防护。
我在一个特定场景的小错误链接上运行:
当我从我的 Workbook_sheetChange
中编辑指定范围内的单元格时并单击另一张代码崩溃并给出 1004,我知道为什么(错误的对象,因为我生成了一个交叉表 _Global
链接)但我不知道如何避免它。我查看了 Stack 和 google,但没有找到任何东西,而且我有一个 mec engereeing 编程类(class),所以我对对象和事件知之甚少。
这是我的代码:
Sub Workbook_sheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("C4:C8")) Is Nothing Then 'Si changement dans les cellules "nom employé"
Call Employe ' Appel Macro pour nom automatique
End If
If Not Intersect(Target, Range("U18:V42")) Is Nothing Then
Call tritroughsheets ' Macro tri des temps d'arret
End If
End Sub
在这种情况下,例如,如果 C4 处于编辑模式并且在 Sheet1 中并且运算符(operator)错误地单击了 Sheet2,它将弹出一条错误消息(我们不希望运算符(operator)处理)我正在寻找像
If(cell is being edited) Then
dont run my stuff till its close
End if
任何想法?谢谢,(戴口罩)
最佳答案
尝试改变
If Not Intersect(Target, Range("C4:C8")) Is Nothing
和:If Not Intersect(Target, sh.Range("C4:C8")) Is Nothing 'exactly qualifies/references the range to the sh worksheet...
VBA 尝试在两个不同工作表中的范围之间进行交集。留在工作表中时,Range("C4:C8")
指的是(正确的)事件表 .当您从一个单元格移动到另一个工作表时,不改变分析范围内的任何内容 ,事件没有被触发......所以,不是单元格编辑是问题。
关于excel - 当单元格打开并选择另一个工作表时,Workbook_sheetChange 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63015101/