使用.PasteSpecial粘贴复制的值

时间:2017-06-25 12:37:35

标签: vba range copy-paste

请帮我解决这个问题:

我使用此link中的此vba:

Sub test()
 Dim rng1 As Range, rng2 As Range, rngName As Range, i As Integer, j As Integer
    For i = 1 To Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row
        Set rng1 = Sheets("Sheet2").Range("B" & i)
        For j = 1 To Sheets("Sheet1").Range("C" & Rows.Count).End(xlUp).Row
            Set rng2 = Sheets("Sheet1").Range("C" & j)
            Set rngName = Sheets("Sheet1").Range("B" & j)
            If rng1.Value = rng2.Value Then
                rngName.Copy Destination:=Worksheets("Sheet2").Range("E" & i)
            End If

        Set rng2 = Nothing
    Next j
    Set rng1 = Nothing
 Next i
End Sub

有人可以告诉我如何将rngName.Copy

结合起来
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

我想获得rngName.Copy仅复制文本,因为我在单元格中有特殊的颜色,文本格式,注释等,其中vba粘贴更改的值,我想保留这些

1 个答案:

答案 0 :(得分:1)

你是说这个吗?

context Person::id:String
inv:    not self.id.toInteger().oclIsUndefined() 
        and self.id.size() = 11

您可能还需要rngName.Copy Worksheets("Sheet2").Range("E" & i).PasteSpecial Paste:=xlPasteFormulas, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False 而不是xlPasteValues。在这种情况下,更简单和更好的方法是在不使用复制/粘贴的情况下获取值:

xlPasteFormulas

上述所有方法都保留了目的地的格式。