仅复制值而不是公式

我得到了一张名为Sheet1的工作表,其中包含通过公式操纵的数据。 我需要一个特定范围的数据,比如说A2到D63,只是按照价值复制在一个新的表单中,即Sheet2

Sheet1中的数据范围是dynamic的,即每次都会改变,所以我需要这个macros来处理这个问题。

尝试

Worksheets("Sheet1").Range("D63").value = .Range("A2").End(xlDown).Offset(0, 41).value

我不是很擅长VBA,所以请原谅

资料来源: http : //www.mrexcel.com/forum/excel-questions/49124-visual-basic-applications-copy-paste-cell-value-only-not-formula.html

我第一次有点不习惯,在这里提供一些更新的代码,希望看起来更像预期的那样。 回读整个线程,听起来不仅是数据,而且范围本身可能是dynamic的。 如果是这样的话,范围实际上是重塑的方式吗?

每当源数据发生变化时,下面的代码将3行添加到源范围中 – 应该写入“sheet1”工作表模块

 Private Sub Worksheet_Change(ByVal Target As range) Static r As range If r Is Nothing Then Set r = Worksheets("Sheet1").range("A2:D63") Else Set r = Union(r, Worksheets("Sheet1").range(Cells(r.Row + r.Rows.Count, r.Column), _ Cells(r.Row + r.Rows.Count + 2, r.Column + r.Columns.Count - 1))) End If r.select If Not Application.Intersect(Target, r) Is Nothing Then For Each Cell In Application.Intersect(Target, r) Worksheets("Sheet2").Cells(Cell.Row, Cell.Column).Value = Cell.Value Next Cell End If 

结束小组