如何在特定行之后插入新的

时间:2013-12-17 04:45:16

标签: vba excel-vba excel-2007 excel

你能告诉我怎么样吗? 1-插入一个新行,然后在现有行2之后准确说3 2-将字符串从1复制到2 3-最后删除1

我必须这样做的原因是我在第1行中有一些下拉,查找(我不知道他们在excel中调用了什么),我无法将这样的文件加载到GIS软件中,所以我需要摆脱它,但是我仍然需要保留Title标题以便进一步引用。

感谢 的更新

Sub inserter()
'
' inserter Macro
'

'
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Rows("2:2").Select
    Selection.Copy
    Rows("3:3").Select
    ActiveSheet.Paste
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
End Sub

2 个答案:

答案 0 :(得分:1)

检查此代码:

Rows("3:3").Select
Selection.Delete Shift:=xlUp
Range("B4").Select
ActiveCell.FormulaR1C1 = "hello"
Range("B4").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Rows("4:4").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

但最好学会保存宏。我的意思是我没有这个代码,每次我需要一些代码我只是保存它,顺便避免。选择,做这样的事情:

Rows("3:3").Delete Shift:=xlUp

希望有所帮助

答案 1 :(得分:1)

嗯,不完全是。如果你注意到这一行

.Rows(1).Copy .Rows(2)

它遵循你在第2点所拥有的内容,而不是你记录的内容。

宏录制器提供各种额外代码。您提供的代码可以写为

Private Sub Sample()
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        .Rows(3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .Rows(1).Copy .Rows(2)
        .Rows(1).Delete Shift:=xlUp
    End With
End Sub

您可能还想查看THIS