颂风侯 发表于 2024-12-30 11:03:09

VBA卡死

excel的单元格数值变化执行相关sub,但是删除行不执行sub,这个怎么实现?现在删除行就卡死

FishC 发表于 2024-12-30 11:14:32

要在Excel中实现单元格数值变化时执行相关的Sub,但在删除行时不执行,可以使用Worksheet的事件处理程序。以下是一个简单的实现思路:

1. 使用`Worksheet_Change`事件来检测单元格的变化。
2. 在事件中判断变化是否是由于行删除引起的。

以下是一个示例代码,展示如何实现这一点:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    Application.EnableEvents = False

    ' 检查是否是单元格数值变化
    If Not Intersect(Target, Me.Range("A1:Z100")) Is Nothing Then
      ' 执行相关的Sub
      Call YourSub
    End If

ErrorHandler:
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_BeforeDelete(ByVal Target As Range)
    ' 在这里可以处理删除行的逻辑
End Sub

Sub YourSub()
    ' 你的Sub代码
End Sub

在这个例子中,`Worksheet_Change`事件用于检测单元格的变化,而`Worksheet_BeforeDelete`事件可以用于处理删除行的逻辑。确保在处理事件时禁用事件以防止递归调用导致卡死。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: VBA卡死