2014-02-28 65 views
0

我在Excel中的一个列表,看起来像:如何根据其他单元格中的值在Excel中插入空行?

1990年 1994年 1995年 1999年

有没有办法在每行之间自动插入一行明年(如三列1990年后)?有没有办法改变插入的行数?

谢谢。

+0

是的,你可以,我几乎肯定唯一的办法是vba。那可以吗? –

+0

VBA很好。宏观工作会改变吗?谢谢:) – user3362984

回答

1

试试这个...为我工作用Excel 2013:

Sub SplitYears() 
' 
' SplitYears Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+S 
' 
    Dim NumRows As Integer 

    NumRows = ActiveCell.Offset(1).Value - ActiveCell.Value - 1 

    If NumRows < 1 Then 
     Exit Sub 
    End If 

    Rows(ActiveCell.Offset(1).Row & ":" & ActiveCell.Offset(NumRows).Row).Select 
    Selection.Insert 


End Sub 

单击列表中的第一年,然后触发宏。它应该在活动单元格和下一行中的年份之间插入适当数量的空行。

编辑:再次添加SplitAllYears

使用光标在第一年的启动列表中,这应该通过和空间了所有的多年在列。

Sub SplitAllYears() 
' 
' SplitAllYears Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+A 
' 
    Dim NumRows As Integer 
    Dim StartPoint As String 

Beginning: 

    NumRows = ActiveCell.Offset(1).Value - ActiveCell.Value - 1 
    StartPoint = ActiveCell.Address 

    If ActiveCell.Value = "" Then 
     Exit Sub 
    End If 

    If (NumRows < 1) Then 
     Range(StartPoint).Offset(1).Select 
     GoTo Beginning 
    End If 

    Rows(ActiveCell.Offset(1).Row & ":" & ActiveCell.Offset(NumRows).Row).Select 
    Selection.Insert 

    Range(StartPoint).Offset(NumRows + 1).Select 

    GoTo Beginning 

End Sub 
+0

这很好。有没有什么办法可以让它在列中进一步发挥作用? – user3362984

+0

在原答案中添加了“SplitAllYears”。希望这就是你要找的! 编辑:坚持...进一步测试发现了一个错误。给我几个... – TesseractE

+0

好的,bug应该解决! – TesseractE

相关问题