仅复制值而不复制公式

时间:2014-07-03 07:38:36

标签: excel excel-vba vba

我有一张名为 Sheet1 的工作表,其中包含通过公式操作的数据。我需要一个特定范围的数据,例如,在新工作表中复制的A2到D63,即仅按值 Sheet2

Sheet1 中的数据范围是动态的,即每次都会更改,因此我需要该宏来处理此问题。

2 个答案:

答案 0 :(得分:0)

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

答案 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