【发布时间】:2014-07-03 07:38:35
【问题描述】:
我有一张名为 Sheet1 的工作表,其中包含通过公式处理的数据。我需要特定范围的数据,例如,将 A2 到 D63 复制到新工作表中,即 Sheet2 仅按值。
Sheet1 中的数据范围是动态的,即它每次都会改变,所以我需要那个宏来处理这个。
【问题讨论】:
-
我为您添加了 VBA 标签,因为您在构建 MACRO 时需要帮助。但是您既然要寻求 VBA 帮助,就需要向我们展示您的尝试。
我有一张名为 Sheet1 的工作表,其中包含通过公式处理的数据。我需要特定范围的数据,例如,将 A2 到 D63 复制到新工作表中,即 Sheet2 仅按值。
Sheet1 中的数据范围是动态的,即它每次都会改变,所以我需要那个宏来处理这个。
【问题讨论】:
试试
Worksheets("Sheet1").Range("D63").value = .Range("A2").End(xlDown).Offset(0, 41).value
我不是很擅长 VBA,所以请原谅任何错误
【讨论】:
第一次时我有点偏离,在这里提供了一些更新的代码,希望看起来更像预期的那样。读回整个线程听起来不仅是数据,而且范围本身在这里可能是动态的。如果是这样,范围实际重塑的方式是否存在模式?
每次源数据更改时,以下代码都会向源范围添加 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
结束子
【讨论】: