VBA仅粘贴值,而不是粘贴所有内容
我正在做一个小项目,它要求我在一列中搜索一个单词,然后将包含我单词的整行复制到另一个工作表中。 这是我的代码,也是我目前所拥有的:VBA仅粘贴值,而不是粘贴所有内容,vba,excel,xlsm,Vba,Excel,Xlsm,我正在做一个小项目,它要求我在一列中搜索一个单词,然后将包含我单词的整行复制到另一个工作表中。 这是我的代码,也是我目前所拥有的: Sub SearchForString2() Dim LSearchRow As Integer Dim LCopyToRow As Integer On Error GoTo Err_Execute 'Start search in row 4 LSearchRow = 10 'Start copyi
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
我希望代码只粘贴选定行的值,而不使用格式或公式。有什么建议吗?提前感谢。您可以使用并指定
xlPasteValues
,而不是使用Paste
,它将只粘贴值,而忽略其他所有内容
但是,请注意,PasteSpecial
是范围
对象的一种方法,而不是工作表
因此,这些问题听起来与您的情况也非常相关:
xlPasteValues
,而不是使用Paste
,它将只粘贴值,而忽略其他所有内容
但是,请注意,PasteSpecial
是范围
对象的一种方法,而不是工作表
因此,这些问题听起来与您的情况也非常相关:
xlPasteValues
,而不是使用Paste
,它将只粘贴值,而忽略其他所有内容
但是,请注意,PasteSpecial
是范围
对象的一种方法,而不是工作表
因此,这些问题听起来与您的情况也非常相关:
xlPasteValues
,而不是使用Paste
,它将只粘贴值,而忽略其他所有内容
但是,请注意,PasteSpecial
是范围
对象的一种方法,而不是工作表
因此,这些问题听起来与您的情况也非常相关:
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
试试这个:
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
试试这个:
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
试试这个:
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
@user3100587:很难猜测您到底需要粘贴什么,但如果我理解正确,请尝试将:
ActiveSheet.paste
替换为:Sheets(“New2”).Selection.paste特殊xlPasteValues
。我尝试了,但仍然有错误。你能告诉我为什么我的代码很难猜吗?!我遗漏了什么吗?@user3100587:您需要类似以下内容:行(lcopytrow).EntireRow.paste特殊xlPasteValues
,但您的代码还有其他问题。例如,引用范围时未指定它们引用的图纸,因此复制/粘贴功能不清晰,显然无法工作。如果不知道你想要达到什么目标,我很难知道如何给你最好的建议。只需阅读我在帖子中复制的问题和答案,并逐行调试您的应用程序,以确保它符合您的预期。@user3100587:很难猜测您需要粘贴什么,但如果我理解正确,请尝试将:ActiveSheet.paste
替换为:Sheets(“New2”).Selection.paste特殊xlPasteValues
。我尝试过,但仍然有错误。你能告诉我为什么我的代码很难猜吗?!我遗漏了什么吗?@user3100587:您需要类似以下内容:行(lcopytrow).EntireRow.paste特殊xlPasteValues
,但您的代码还有其他问题。例如,引用范围时未指定它们引用的图纸,因此复制/粘贴功能不清晰,显然无法工作。如果不知道你想要达到什么目标,我很难知道如何给你最好的建议。只需阅读我在帖子中复制的问题和答案,并逐行调试您的应用程序,以确保它符合您的预期。@user3100587:很难猜测您需要粘贴什么,但如果我理解正确,请尝试将:ActiveSheet.paste
替换为:Sheets(“New2”).Selection.paste特殊xlPasteValues
。我尝试过,但仍然有错误。你能告诉我为什么我的代码很难猜吗?!我遗漏了什么吗?@user3100587:您需要类似以下内容:行(lcopytrow).EntireRow.paste特殊xlPasteValues
,但您的代码还有其他问题。例如,引用范围时未指定它们引用的图纸,因此复制/粘贴功能不清晰,显然无法工作。如果不知道你想要达到什么目标,我很难知道如何给你最好的建议。只需阅读我在帖子中复制的问题和答案,并逐行调试您的应用程序,以确保它符合您的预期。@user3100587:很难猜测您需要粘贴什么,但如果我理解正确,请尝试将:ActiveSheet.paste
替换为:Sheets(“New2”).Selection.paste特殊xlPasteValues
。我尝试过,但仍然有错误。你能告诉我为什么我的代码很难猜吗?!我遗漏了什么吗?@user3100587:您需要类似以下内容:行(lcopytrow).EntireRow.paste特殊xlPasteValues
,但您的代码还有其他问题。例如,引用范围时未指定它们引用的图纸,因此复制/粘贴功能不清晰,显然无法工作。如果不知道你想要达到什么目标,我很难知道如何给你最好的建议。只要阅读我在帖子中复制的问题和答案,并逐行调试应用程序,以确保它符合您的预期。如果您只关心值,则无需使用Copy
或Paste/PasteSpecial
方法。您可以将值的范围直接写入另一个范围,使用类似以下内容进行尝试:Sheets(2).range(“A1:B10”).Value=Sheets(1).range(“A1:B10”).Value
如果您只关心值,则无需使用Copy
或Paste/PasteSpecial
方法。您可以将值的范围直接写入另一个范围,使用类似以下内容进行尝试:Sheets(2).range(“A1:B10”).Value=Sheets(1).range(“A1:B10”).Value<