【问题标题】:Count the times a cell is changed and populate a cell in different worksheet计算单元格更改的次数并在不同的工作表中填充单元格
【发布时间】:2015-02-26 05:40:04
【问题描述】:

假设有两个工作表 1,工作表 2。两个工作表都有一个“数字”列,将记录联系在一起 Workshhet 2 对“数字”列中的每个唯一数字都有“日期”列,每当工作表 2 的“日期”列发生更改时,我想更新工作表 1 中与工作表 2 的唯一编号。 请帮帮我! :)

我已经尝试了以下

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address = "$A$1" Then [C5].Value = [C5].Value + 1 
End Sub

【问题讨论】:

  • 请告诉我们您尝试了什么?如果您还没有尝试过任何事情,请从 worksheet_change 事件开始。 THIS 将帮助您开始 :)
  • 顺便说一句,欢迎来到 stackoverflow :) 由于您是新来的,请花点时间看看Stack Overflow question checklist 询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,为什么他们没有工作,和预期的结果。
  • Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then [C5].Value = [C5].Value + 1 End Sub 然后尝试使用 Vlookup 来引用这个数据到第一个工作表。但是我想知道是否有更好的方法来做到这一点! :)
  • 我建议阅读我的第二条评论中的链接,然后编辑您的问题以使其更有意义,否则您的问题最终将被关闭。此外,无论您尝试了什么相关代码,都将其放在您的问题中,而不是在 cmets 中。 :)
  • 你显示的代码对我有用,你确定你启用了事件吗?

标签: excel vlookup validation vba


【解决方案1】:

您的代码应该在同一个工作表中工作。如果您想计算其他工作表中单元格更改的次数,例如Sheet2,那么您必须将代码更改为:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then
        ActiveWorkbook.Sheets("Sheet2").Cells(Target.Row, 3).Value = ActiveWorkbook.Sheets("Sheet2").Cells(Target.Row, 3).Value + 1
    End If
End Sub

此更改事件仅对 A1:A100 中单元格的更改做出反应,然后更改 Sheet2 上 C 行中相应单元格中的计数。

【讨论】:

  • 谢谢!如果目标地址是整个 A 列,并且任何单元格更新都将填充 C 列中的相应单元格。例如我更新A100,更新计数需要填入C100。代码将如何变化:)
  • 我已经更新了答案中的代码以考虑到这一点。
  • 这很好用!我有一个后续问题。 Incase A 列与当前工作表(表 1)中的唯一应用编号(B 列)相关联。表 2 在 B 列中也有唯一的应用程序编号。首先我需要检查两个应用程序是否不匹配,然后更新表 2 中的 C 列。这可能吗?
  • 我不完全确定你的问题是什么。我建议您改为创建一个新问题。
  • 我能够通过 vlookup 处理我的问题的第二部分。它就像一种享受。感谢您的帮助索伦!
猜你喜欢
  • 2015-01-25
  • 1970-01-01
  • 2015-07-09
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多