微小转动 - 向下移动多列

时间:2014-06-06 17:04:02

标签: excel vba

我又被卡住了..

我已经使用了很长时间的宏,但现在我需要为宏添加一个功能。

Sub InsRow()

Dim c 

Application.ScreenUpdating = False 

For Each c In Selection 

    If c.Offset(0, -1) <> c And c.Offset(0, -1) <> "" Then 
        c.Offset(0, 1).Insert shift:=xlDown 
        c.Insert Shift:=xlDown 

    End If 


Next c 

Application.ScreenUpdating = True 

End Sub

该宏查看列B中的值是否与列A中的值相同。如果不是这种情况,则将列B和C的单元格向下移动,直到它们再次同步。但是,我希望列d直到....也可以向下移动。如何将此功能添加到宏?

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

Sub InsRow() 
Dim c 

Application.ScreenUpdating = False 

For Each c In Selection 
    If c.Offset(0, -1) <> c And c.Offset(0, -1) <> "" Then 
        'Change the "D" to whichever column you want to shift down.
        Range(cells(c.Row,"B"),cells(c.Row,"D")).Insert shift:=xlDown 
        c.Insert Shift:=xlDown 
    End If 
Next c 

Application.ScreenUpdating = True 

End Sub 

上面的子列将从B的所有列向下移动到您指定的任何列。目前它将向下移动B,C和D列。