繁体   English   中英

如果其中的列包含指定值(新工作表中另一列的值),如何将行复制到另一个 Excel 工作表上?

[英]How to copy a row onto another excel worksheet if a column in it contains a specified value (of another column in the new sheet)?

我有一个数据集中的随机数字子集,我在新数据表中创建了一个新列。 但是,我需要使用一个简单的命令将与第一个数据表中列中的数字关联的行复制到第二个数据表中。 我从未使用过 VBA 宏(如果这就是所谓的宏),但我一直在寻找能够做到这一点的任何代码?

这是我发现的一个例子,作为对另一个问题的回答,我试图用我对 excel 宏的非常有限的理解来修改它:

Private Sub CommandButton1_Click()
Copy_Cells()
    botRow = 100
    For i = botRow To 1 Step -1
      If Cells(i, 10).Value = B3:B186 Then
        Rows(i).EntireRow.Copy
        Rows(i + 1).Insert Shift:=xlDown
      End If
   Next i
End Sub

我得到的错误是关于语法的。 我的问题是我不明白任何代码的含义。 原始数据是这样的:原始数据

这就是我想要输入的内容:想要的输出

我找到了一个代码,它完全符合我的需要。 我是从关于 stackexchange 的另一个问题中得到的,但我想我会发布以防其他人需要它。

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


    Set Source = ActiveWorkbook.Worksheets("source")
    Set Target = ActiveWorkbook.Worksheets("target")
    Set Condition = ActiveWorkbook.Worksheets("condition")

    j = 1    'This will start copying data to Target sheet at row 1
      For Each d In Condition.Range("A1:A86")
        For Each c In Source.Range("B2:B1893")
            If d = c Then
                Source.Rows(c.Row).Copy Target.Rows(j)
                j = j + 1
            End If
        Next c
    Next d
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM