我有一张名为 Sheet1 的工作表,其中包含通过公式操作的数据。我需要一个特定范围的数据,例如,在新工作表中复制的A2到D63,即仅按值 Sheet2 。
Sheet1 中的数据范围是动态的,即每次都会更改,因此我需要该宏来处理此问题。
答案 0 :(得分:0)
试
Worksheets("Sheet1").Range("D63").value = .Range("A2").End(xlDown).Offset(0, 41).value
我不是很擅长VBA所以请原谅任何错误
答案 1 :(得分:0)
我第一次有点偏离,在这里提供一些更新的代码,希望看起来更像是预期的。回读整个线程不仅会发现数据,而且这里的范围本身也可能是动态的。如果是这样,范围实际重塑的方式是什么?
以下代码每次源数据更改时都会向源范围添加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
End Sub