根据列值移动行

时间:2014-10-21 16:38:55

标签: excel vba

我有一个电子表格,如果B列中的数据与某个值匹配,我想剪切并将整行插入电子表格的顶部。

这是我到目前为止所做的:

Cells.Find("TRCH").Select
ActiveCell.EntireRow.Select
Selection.Cut
Range("7:7").Select
Selection.Insert
Application.CutCopyMode = False

此代码有效,但它只找到TRCH的第一个实例。我需要更改什么才能从第7行开始插入包含TRCH的所有行?

提前致谢!

我已更新截图。第一个例子是原始数据集。第二个例子是我运行宏后想要的样子。上面的代码只将TRCH的第一行移到顶部。希望澄清。

original data

updated data

1 个答案:

答案 0 :(得分:0)

这还没有经过测试,代码中的任何问题或疑问都会让我知道:

Dim wks As Worksheet
Dim lRow As Long

Set wks = ThisWorkbook.ActiveSheet

'loop through each row from 1 to the last row in used range
For lRow = 1 To wks.UsedRange.Rows.Count  

If UCase(wks.Cells(lRow, 2)) = "TRDM" Then 'check if the this cell contains TRDM

    'if there is a match then cut current row and insert into row 7
    wks.Rows(lRow).Cut wks.Range("7:7")

End If

Next