Pastespecial,只粘贴来自formual的值

我有2张,在一张表中我正在寻找列中的指定文本,如果存在,那么它应该复制与特定文本的所有行,并将其粘贴到另一个工作表中。 这是为我工作,但问题是,当我想pastespecial,只粘贴值,而不是公式我不工作。

这里是代码,任何想法做什么?

With Sheets(1) LR = .Range("A" & Rows.Count).End(xlUp).Row For i = 1 To LR If .Range("A" & i).Value = "Orange" Then .Rows(i).Copy Sheets(2).Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial _ Paste:=xlPasteValues Next i End With 

代码中有一个逻辑错误,在我的评论中我错过了。 在If块中需要PasteSpecial

 With Sheets(1) LR = .Range("A" & Rows.Count).End(xlUp).Row For i = 1 To LR If .Range("A" & i).Value = "Orange" Then .Rows(i).Copy Sheets(2).Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial _ Paste:=xlPasteValues End If Next i End With 

虽然Rory的答案应该完全适合您的问题,但是您可以使用范围的variables来加速大量复制…

 Dim rng As Range With Sheets(1) LR = .Range("A" & Rows.Count).End(xlUp).Row For i = 1 To LR If .Range("A" & i).Value = "Orange" Then If rng Is Nothing Then Set rng = .Rows(i) Else Set rng = Union(rng, .Rows(i)) End If End If Next rng.EntireRow.Copy Sheets(2).Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues End With 

通过电话写。 可能包含错误。