Excel VBA根据列A中的值复制列B中的值,并粘贴到另一张图纸中
我有一个非常具体的要求,基于一个有两列的电子表格。我想在单独的表格中搜索交易金额的值,只搜索第二个姓名/地址,而不是第一个和第三个字段。里面有37根这样的电线,我需要它穿过每一根。有什么想法吗?这就是我目前所拥有的。它将根据交易金额进行复制,但我也希望它复制第二个名称/地址字段并粘贴到下一列的行中 谢谢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
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”的全部值,请告诉我。