Excel VBA根据列A中的值复制列B中的值,并粘贴到另一张图纸中

Excel VBA根据列A中的值复制列B中的值,并粘贴到另一张图纸中,excel,vba,Excel,Vba,我有一个非常具体的要求,基于一个有两列的电子表格。我想在单独的表格中搜索交易金额的值,只搜索第二个姓名/地址,而不是第一个和第三个字段。里面有37根这样的电线,我需要它穿过每一根。有什么想法吗?这就是我目前所拥有的。它将根据交易金额进行复制,但我也希望它复制第二个名称/地址字段并粘贴到下一列的行中 谢谢 Sub cond_copy() 'assuming the data is in sheet1 Sheets("Sheet1").Select RowCount = Cells(Cells.R

我有一个非常具体的要求,基于一个有两列的电子表格。我想在单独的表格中搜索交易金额的值,只搜索第二个姓名/地址,而不是第一个和第三个字段。里面有37根这样的电线,我需要它穿过每一根。有什么想法吗?这就是我目前所拥有的。它将根据交易金额进行复制,但我也希望它复制第二个名称/地址字段并粘贴到下一列的行中

谢谢

Sub cond_copy()
 'assuming the data is in sheet1
Sheets("Sheet1").Select
RowCount = Cells(Cells.Rows.Count, "a").End(xlUp).Row
For i = 1 To RowCount
     'assuming the true statment is in column a
    Range("a" & i).Select
    check_value = ActiveCell
    If check_value = "Transaction Amount" Or check_value = "Transaction Amount" Then
        ActiveCell.EntireRow.Copy
         'assuming the data is in sheet2
        Sheets("Sheet2").Select
        RowCount = Cells(Cells.Rows.Count, "a").End(xlUp).Row
        Range("a" & RowCount + 1).Select
        ActiveSheet.Paste
        Sheets("Sheet1").Select
    End If
Next
端接头

第二个姓名/地址字段是否总是在交易金额下方9行?如果是这样的话,你可以试试这个

此外,我建议转向远离。选择。通常不需要它,会降低性能,根据我的经验,它会导致间歇性错误

Sub cond_copy()
 'assuming the data is in sheet1
    RowCount = 1
    addressCounter = 0
    With Worksheets("Sheet1")
        For i = 1 To .Cells(.Cells.rows.Count, "a").End(xlUp).row
             'assuming the true statment is in column a
            If .Cells(i, "A").value = "Transaction Amount" Then
                For x = i + 1 To .Cells(.Cells.rows.Count, "a").End(xlUp).row
                    If .Cells(x, "A").value = "Name/Address" Then addressCounter = addressCounter + 1
                    If addressCounter = 2 Then
                        Worksheets("Sheet2").Cells(RowCount, "A").value = .Cells(i, "B").value
                        Worksheets("Sheet2").Cells(RowCount, "B").value = .Cells(x, "B").value
                        RowCount = RowCount + 1
                        addressCounter = 0
                        Exit For
                    End If
                Next

                i = x - 1
            End If
        Next
    End With
End Sub

不,问题是某些导线具有额外的字段,这些字段将增加或减少导线中的行数between@user2966728,很抱歉反应太晚。我已经更新了答案,以允许名称/地址位置的灵活性。请注意,代码将捕获屏幕截图中名称/地址字段旁边的任何值,它将捕获“B23”。如果需要捕获字段“B23:B24”的全部值,请告诉我。