【问题标题】:worksheet macro for multiple cells多个单元格的工作表宏
【发布时间】:2019-03-28 23:47:29
【问题描述】:

我有一些代码用于更改工作表。如果某个范围内的某些内容比其他单元格中的有所变化,则会出现日期。

这是为了跟踪最近的更改。

这适用于我的工作表中的一个表,但我有多个表我想对其执行相同的操作。 请参阅下面我为一张表提供的代码..

那么我怎样才能为同一张表中的多个表扩展它呢?

期待您的回复

Private Sub Worksheet_Change(ByVal Target As Range)

 Dim xRg As Range
  On Error Resume Next
     Set xRg = Intersect(Target, Range("DATASENDUR"))
    If xRg Is Nothing Then Exit Sub
    Range("B22").Value = Now()
 End Sub

【问题讨论】:

  • 所以你想将同一个宏应用到多个Target
  • Remove On Error Resume Next 这一行隐藏了所有错误,但它们仍然会出现,您只是看不到它们。这会让你对任何错误视而不见。 VBA Error Handling – A Complete Guide

标签: excel vba


【解决方案1】:

请注意,在写入Worksheet_Change 事件中的单元格之前,您必须禁用事件Application.EnableEvents = False,否则它将一次又一次地触发该事件……

您可以检查第二个范围,如下所示。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range

    'check changes in first range
    Set xRg = Intersect(Target, Me.Range("DATASENDUR"))
    If Not xRg Is Nothing Then 
        Application.EnableEvents = False 'prevent to trigger another Worksheet_Change event!
        Me.Range("B22").Value = Now()
        Application.EnableEvents = True
    End If

    'check changes in OTHER range
    Set xRg = Intersect(Target, Me.Range("OTHERRANGE"))
    If Not xRg Is Nothing Then 
        Application.EnableEvents = False 'prevent to trigger another Worksheet_Change event!
        Me.Range("B25").Value = Now()
        Application.EnableEvents = True
    End If

End Sub

【讨论】:

  • 非常感谢您的反馈,我会尝试一下。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 1970-01-01
相关资源
最近更新 更多