VBA只粘贴值而不粘贴每一个东西

我正在研究一个小项目,要求我通过一列search一个字,然后将包含我的单词的整行复制到另一个表中。 这是我的代码,到目前为止:

Sub SearchForString2() Dim LSearchRow As Integer Dim LCopyToRow As Integer On Error GoTo Err_Execute 'Start search in row 4 LSearchRow = 10 'Start copying data to row 2 in Sheet2 (row counter variable) LCopyToRow = 3 While Len(Range("J" & CStr(LSearchRow)).Value) > 0 'If value in column E = "Mail Box", copy entire row to Sheet2 If Range("M" & CStr(LSearchRow)).Value = "NEW" Then 'Select row in Sheet1 to copy Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select Selection.Copy 'Paste row into Sheet2 in next row Sheets("New2").Select Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select ActiveSheet.Paste 'Move counter to next row LCopyToRow = LCopyToRow + 1 'Go back to Sheet1 to continue searching Sheets("Old").Select End If LSearchRow = LSearchRow + 1 Wend 'Position on cell A3 Application.CutCopyMode = False Range("A3").Select MsgBox "OK!" Exit Sub Err_Execute: MsgBox "An error occurred." End Sub 

我想要代码只粘贴所选行的值,没有格式或公式。 有什么build议么? 提前致谢。

尝试这个:

 While Len(Range("J" & CStr(LSearchRow)).Value) > 0 'If value in column E = "Mail Box", copy entire row to Sheet2 If Range("M" & CStr(LSearchRow)).Value = "NEW" Then Sheets("New2").Rows(LCopyToRow).Value = Rows(LSearchRow).Value 'Move counter to next row LCopyToRow = LCopyToRow + 1 End If LSearchRow = LSearchRow + 1 Wend 

您可以使用PasteSpecial并指定xlPasteValues ,而不是使用Paste ,只粘贴值并忽略其他所有内容。

但是请注意, PasteSpecialRange对象的一种方法,而不是Worksheet

这些SO问题在你的情况下也是非常相关的:

  • 如何在Excel中只粘贴值
  • 在vba中粘贴特殊值