我有两张纸,在一张纸上我在列中查找特定文本,如果存在则应该复制具有特定文本的所有行并将其粘贴到另一张纸中。这对我有用,但问题是,当我想要粘贴时,只粘贴值而不是公式我不能正常工作。
以下是代码,知道该怎么做?
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
答案 0 :(得分:2)
您的代码中存在逻辑错误,我在评论中遗漏了这个错误。你需要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
答案 1 :(得分:0)
虽然Rory的答案应该完全适合你的问题,你可以使用变量来大幅加快它的复制范围......
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
通过电话撰写。可能包含错误。