2014-02-28 86 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

相關問題