如果不匹配,请将excel工作表中的行复制到另一个

时间:2013-04-04 20:02:55

标签: excel-vba vba excel

我有一个Excel工作表(“所有文档”),它是从SharePoint列表中填充的,但也有一些包含公式的列。我在同一工作簿(“原始”)中有另一个工作表,其中包含列表项的原始值。我需要比较两个工作表,如果“原始”中A列中的“所有文档”中的A列中的值不存在,则需要将该行复制到“原始”表。它必须作为值粘贴。我搜索了许多论坛并尝试了许多建议但没有成功。这是我最近的尝试。任何帮助将不胜感激!

Dim x As Long, y As Long, a As Long
Dim b As String
Dim rFound As Range
Dim TargetRange As Range
x = Worksheets("All Documents").Range("A" & Rows.Count).End(xlUp).Row
For a = 2 To x
    y = Worksheets("Original").Range("A" & Rows.Count).End(xlUp).Row
    b = Worksheets("All Documents").Range("A" & a)
    If a > y Then Exit For
    With Worksheets("Original").Range("A:A")
        Set rFound = .Find(b, LookIn:=xlValues)
        If rFound Is Nothing Then
           TargetRange = Worksheets("Original"1).Cells(Worksheets("Original").Rows(y + 1))
           Worksheets("All Documents").Rows(a).Copy
           TargetRange.PasteSpecial xlPasteValues
        End If
    End With
Next a

1 个答案:

答案 0 :(得分:0)

三件事,

  1. 要设置您需要的范围:

    Set TargetRange = Worksheets("Original").Rows(y + 1)
    
  2. 检查工作表是否为"Original"1"Original"

  3. 改进通过以下方式复制您的值:

    Worksheets("Original").Rows(y + 1).Value = _
      Worksheets("All Documents").Rows(a).Value