将单元格范围(仅限值而非公式)复制到同一文件中的另一个工作表

时间:2015-05-02 09:36:26

标签: excel vba excel-vba excel-formula

我正在使用以下代码。此代码将单元格公式复制到另一个工作表中。有谁知道如何修改它只是复制单元格值而不是公式?

sub copyRangeOver()

    Dim i As Integer
    i = 631

    Dim copyRange  As Range
    Set copyRange = ThisWorkbook.Worksheets("Coupling xyz data").Range("J" & 1 & ":V" & i)

    Dim countD As Integer
    countD = 1
    copyRange.Copy Destination:=Cells(countD, 1)

    Dim j As Integer
    j = 466
    Set copyRange = ThisWorkbook.Worksheets("Spring xyz data").Range("J" & 1 & ":V" & j)

    copyRange.Copy Destination:=Cells(i + 1, 1)

End Sub

3 个答案:

答案 0 :(得分:3)

您可以执行直接值传输,这比复制和粘贴特殊值,值更快,并且不涉及剪贴板。

Sub copyRangeOver()

    Dim i As Long, j As Long, countD As Long
    Dim copyRange As Range

    i = 631
    countD = 1

    With ThisWorkbook.Worksheets("Coupling xyz data")
        Set copyRange = .Range("J" & 1 & ":V" & i)
        Cells(countD, 1).Resize(copyRange.Rows.Count, copyRange.Columns.Count) = _
            copyRange.Value
    End With

    j = 466

    With ThisWorkbook.Worksheets("Spring xyz data")
        Set copyRange = .Range("J" & 1 & ":V" & j)
        Cells(i + 1, 1).Resize(copyRange.Rows.Count, copyRange.Columns.Count) = _
            copyRange.Value
    End With

End Sub

这复制了你之前的努力,虽然在我看来,值的目的地存在一些模糊性。对于要接收值的行,您在第二行中使用 i ,在第一行中使用 CountD ,但它们之间似乎没有关系。

答案 1 :(得分:0)

你需要粘贴:

copyRange.Copy
Cells(countD, 1).PasteSpecial Paste:=xlPasteValues

答案 2 :(得分:0)

这通常是如何完成的。

  copyRange.Copy
  Cells(i + 1, 1).PasteSpecial xlPasteValues
  application.cutcopymode=0