在列中查找以“SS”开头并将行向左移动的单元格

时间:2018-05-17 18:11:46

标签: vba excel-vba excel

我已复制了需要整理的pdf。我在A列中有规范(SS ####),在B-H中有misc写入。问题是某些规范最终出现在B列中,所以我想搜索所有带SS的单元格,然后将整行移动。我尝试过使用自动过滤器和选择可见细胞,以及.find无济于事。

感谢您的帮助!

on()

这将为下面显示的四个中的每一个选择B列中的单元格,但我不知道如何抓住行的其余部分并将其向右移动。 ()

Excel Example

2 个答案:

答案 0 :(得分:0)

试试这个,它会在B栏中搜索类似" SS"如果找到则删除左边的单元格,即A,并将整行向左移动。

Sub findSS()
Dim getLastRow As Long
getLastRow = Range("B" & Rows.Count).End(xlUp).Row

For i = 1 To getLastRow
    If Range("B" & i) Like "*SS*" Then
        Range("A" & i).Select
        Selection.Delete Shift:=xlToLeft
    End If
Next
End Sub

更新,将找到" SS"在D列中,或者如果您希望在任何列中找到它,只需更改" D"你想要的列,它将获得SS并插入一行并将其放在那里。

Sub findSS()
Dim getLastRow As Long
Dim columnLetter As String
getLastRow = Range("B" & Rows.Count).End(xlUp).Row
columnLetter = "D"

For i = 1 To getLastRow
    If Range(columnLetter & i) Like "*SS*" Then
        Range(columnLetter & i).Insert shift:=xlDown
    End If
Next

End Sub

答案 1 :(得分:0)

请尝试以下操作删除列的单元格并向左移动:

dim i as long, lr as long
lr = cells(rows.count,1).end(xlup).row
for i = 2 to lr 'assumes row 1 is headers
    if left(cells(i,2),2)="SS" then cells(i,1).delete Shift:=xltoleft
next i

尝试下面添加一个空白单元格并向右移动:

dim i as long, lr as long
lr = cells(rows.count,1).end(xlup).row
for i = 2 to lr 'assumes row 1 is headers
    if left(cells(i,2),2)="SS" then cells(i,1).insert Shift:=xltoright
next i