Vba 使用粘贴特殊值

Vba 使用粘贴特殊值,vba,excel,Vba,Excel,多亏了另一个用户,我已经能够使用destination将其粘贴到偏移范围,现在我正在尝试更改它,以便将其粘贴为值,这样我的格式和公式就不会随身携带。由于公式复制过度,粘贴当前导致#REF错误 Option Explicit Sub CopyPasteOffset() Dim OffsetRange As Long OffsetRange = Cells(78,1).Value Range("B65:F65").Copy _ Destination:=She

多亏了另一个用户,我已经能够使用destination将其粘贴到偏移范围,现在我正在尝试更改它,以便将其粘贴为值,这样我的格式和公式就不会随身携带。由于公式复制过度,粘贴当前导致#REF错误

Option Explicit
Sub CopyPasteOffset()
    Dim OffsetRange As Long
    OffsetRange = Cells(78,1).Value
    Range("B65:F65").Copy _
        Destination:=Sheets("stats FY2017").Cells(2+OffsetRange,2).PasteSpecial xlPasteSpecial
End Sub
给我一个“语句结束错误”

试试这个

Sub CopyPasteOffset()
    Dim OffsetRange As Long
    OffsetRange = Cells(78, 1).Value
    Range("B65:F65").Copy
    Sheets("stats FY2017").Cells(2 + OffsetRange, 2).PasteSpecial xlPasteValues
End Sub

下面是一些特殊值的变体。有些包含格式设置,但全部采用原始公式中的值

Sub CopyPasteOffset()
    Dim offsetRange As Long

    With Worksheets(1)
        offsetRange = .Cells(1, 1).Value

        'raw value transfer - slightly faster but dates become integers, time becomes doubles
        'and currency loses regional information
        With .Range("B1:F1")
            Worksheets(2).Cells(1 + offsetRange, 1).Resize(.Rows.Count, .Columns.Count) = .Value2
        End With

        'value transfer - dates, times and currency are retained
        With .Range("B1:F1")
            Worksheets(2).Cells(1 + offsetRange, 1).Resize(.Rows.Count, .Columns.Count) = .Value
        End With

        'add a blank cell and paste the union - provides Value and Formatting transfer (strips formulas)
        '(assumes that Z1 is a blank cell that will not interfere with anything when pasted)
        .Range("B1:F1, Z1").Copy _
            Destination:=Worksheets(2).Cells(1 + offsetRange, 1)

        'PasteSpecial Values, optionally paste formats
        .Range("B1:F1").Copy
            With Worksheets(2).Cells(1 + offsetRange, 1)
                .PasteSpecial xlValues
                .PasteSpecial xlFormats
            End With
    End With

End Sub

目的地:=工作表(“2017财年统计数据”).单元格(2+OffsetRange,2).粘贴特殊xlPasteSpecial
替换为
目的地:=工作表(“2017财年统计数据”).单元格(2+OffsetRange,2).粘贴特殊XLPasteValue
谢谢!工作得很好。我的特别之处就是这个问题,现在我看到了。当我一开始尝试这个方法时,语法是我产生错误的原因,它总是比看起来简单。很高兴它奏效了。您可能对语法做了一些错误。:)请花点时间接受答案,将你的问题标记为已解决。是的,我只是在等待计时器,在我接受之前,计时器还有几分钟。语法就是引起我语法的xlPasteValue项,我现在回顾一下代码