2016-03-31 138 views
1

我在Excel中有一個很長的兩列的列表。每隔26行,我想插入兩行新行,將剩下的行向下推。所以基本上我有Excel:按照模式每隔x行插入一行新內容

26 ABC 
27 DEF 
28 GHI 

,並希望把它

26 ABC 
27 
28 
29 DEF 
30 GHI 

此外,如果可能的話,我想根據一個簡單的模式把文本轉換成這些新線路:

1_sometext 
1_someothertext 

2_sometext 
2_someothertext 

因此,以「1_」開頭的行將進入行27和行28,以「2_」開頭的行將進入行55和行56,並且數量不斷增加。

回答

0

一切皆有可能。你只需要寫這個VBA宏應該看起來像這樣一個

Sub someSubForLazyGuy() 

    Dim currentSheet As Worksheet 
    Set currentSheet = Sheets("Sheet2") 

    Dim rowCounter As Long 
    Dim spaceCounter As Long 

    rowCounter = 27 
    spaceCounter = 1 
    With currentSheet 
     Do While .Cells(rowCounter, 1).Value <> "" 
      .Cells(rowCounter, 1).EntireRow.Insert 
      .Cells(rowCounter, 1).EntireRow.Insert 
      .Cells(rowCounter, 1).Value = spaceCounter & "_sometext" 
      .Cells(rowCounter + 1, 1).Value = spaceCounter & "_someothertext" 
      spaceCounter = spaceCounter + 1 
      rowCounter = rowCounter + 27 + 1 
     Loop 

    End With 
End Sub 

它的工作原理很簡單。循環行,每插入27行,就會插入2個新行。然後你在這兩行上填寫你的文本和其他文本,將行計數器移動27行,並加1到你的新行,等等,直到有列中的數據...