【问题标题】:How to Copy rows based on 2 column criteria and paste specific data in VBA?如何根据 2 列条件复制行并将特定数据粘贴到 VBA 中?
【发布时间】:2020-11-24 02:39:53
【问题描述】:

我的源工作表中有 4 列(A、B、C、D、E)。我只想将前 2 列(A,B)的行复制到目标。这两列是根据“是”列 (D,E) 中的值复制的。此外,我想将源表中的列(D,E)标题复制到列(C,D)中的目标表 对于 Instanc,这里是源工作表内容

  A  |  B |  C  |  D |  E  |
testX| 123| xyz | No | Yes |
testY| 125| xyz | Yes| No  |

我希望看到复制到目标表的内容如下

  A  |  B |  C |
testX| 123|  E | 
testY| 125|  D |

E 和 D 是来自目标工作表的标题。另外,如果您注意到,我对源表中的 C 列不感兴趣,我不需要将其复制到目标表中

我的代码确实正确读取了“是”标准,但它复制了整行并且它没有做任何事情来复制标题。所以我得到的是源表的确切副本。即,

  A  |  B |  C  |  D |  E  |
testX| 123| xyz | No | Yes |
testY| 125| xyz | Yes| No  |

我需要一些帮助来完成这个项目。 谢谢

Sub CopyYes()
    Dim c As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("Sheet1")
    Set Target = ActiveWorkbook.Worksheets("Sheet2")

    j = 4     ' Start copying to row 4 in target sheet
    For Each c In Source.Range("D5:E1000")   
        If c = "Yes" Then
           Source.Rows(c.Row).Copy Target.Rows(j)
           j = j + 1
        End If
    Next c
End Sub

【问题讨论】:

    标签: vba copy criteria


    【解决方案1】:

    试试这个:

    Sub CopyYes()
        Dim c As Range
        Dim j As Integer
        Dim Source As Worksheet
        Dim Target As Worksheet
    
        ' Change worksheet designations as needed
        Set Source = ActiveWorkbook.Worksheets("Sheet1")
        Set Target = ActiveWorkbook.Worksheets("Sheet2")
    
        j = 4     ' Start copying to row 4 in target sheet
        For Each c In Source.Range("D5:E1000").Cells   
            If c = "Yes" Then
               c.EntireRow.Cells(1).Resize(1, 2).copy Target.Cells(j, 1)  'ColA, B
               Target.Cells(j ,3).Value = Source.Cells(4, c.Column).Value 'Header
               j = j + 1
            End If
        Next c
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      相关资源
      最近更新 更多