【问题标题】:Capture all changing data from a cell to another using excel VBA使用excel VBA捕获从一个单元格到另一个单元格的所有变化数据
【发布时间】:2017-08-24 13:22:05
【问题描述】:

我的工作簿的 sheet1 A1 单元格不断更新新数据,我的要求被捕获所有更改并将其保存到 sheet2“B”列。(新数据将添加到新行,如 B1、B2、B3 等) 使用下面的代码,我可以使用工作表更改功能来实现它

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("A1").Address Then
        Dim intLastRow As Long
        intLastRow = Sheet2.Cells(Sheet2.Rows.Count, "B").End(xlUp).Row
        Sheet2.Cells(intLastRow + 1, "B") = Target.Value

    End If

End Sub

如果我手动将数据输入到原始单元格 (sheet1 A1),此代码可以完美运行。但如果我使用任何公式说“=C2”,它就不起作用。使用公式更新的任何数据都不会在 sheet2 B 上捕获。想知道无论如何我也可以捕获使用公式更新的值

【问题讨论】:

  • 使用worksheet_calculate事件

标签: vba excel excel-formula excel-2010


【解决方案1】:
Private Sub Worksheet_Calculate()

With Sheet2
    With .Cells(.Rows.Count, "B").End(xlUp)
        If .Value <> Sheet1.Range("A1").Value Then
            .Offset(1).Value = Sheet1.Range("A1").Value
        End If
    End With
End With

End Sub

【讨论】:

  • 如果我想将数据保存在不同的工作簿上,我可以像下面这样使用。我在目标 excel 上添加此代码。 If .Value Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Value Then .Offset(1).Value = Workbooks("Book1.xlsx").Worksheets(" Sheet1").Range("A1").Value End If
  • 你为什么不试试看呢?
  • 我已经试过了,但它没有拉数据。寻找语法
猜你喜欢
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
相关资源
最近更新 更多