Excel使用宏插入功能列

时间:2016-01-26 22:12:29

标签: excel vba excel-vba

我想要的是一个宏,它在每4行之后插入一个函数列,对于第3行,它将包含一个函数和第1行和第1行。 2与前一个相同,第3行表示计划订单。

我想在这一个之后添加这个相同的宏来创建每5个,然后每6个创建一个,每7个创建一个。

它可以是4个宏我只需要按照正确的顺序点击而不是任何想要的东西。

我创建了下面的宏,每隔第4列插入一行,但是我必须将表移到三列以开始,并且它不会生成最后一列。我怎么能得到我想要添加到这个专栏的功能?

Sub insert_column_after_interval_4()

  Dim iLastCol As Integer

  iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column ' same as CTRL+RIGHT ARROW

  For colx = 5 To iLastCol Step 5

     Columns(colx).Insert Shift:=xlToRight

  Next

End Sub

包含表格当前外观的图片,最终结果将是此后的4个额外公式列以及电子表格中每个后续4列之后。

enter image description here

1 个答案:

答案 0 :(得分:0)

下面的代码将在每第四列之后插入3 Columns,第一列将被添加到第六列,然后在每四列之后将从那里插入三列。

来自四列一组中最后两列的数据将粘贴到新列的前两列。

要记住两件事。您始终希望使用WorkBooks WorkSheets的直接引用,以避免在多个WorkBooksWorkSheets可用时在程序中出现混淆。

 Option Explicit

 Sub InsertingColumns()

      'Always want to directly reference the WorkBook and WorkSheet which contains your data
      'Change Book1 and Sheet1 as per your requirement
      Dim CurrentWorkSheet As Worksheet
      Set CurrentWorkSheet = Workbooks("Book1").Worksheets("Sheet1")

      Dim LastColumn As Long
      LastColumn = CurrentWorkSheet.Cells(1, Columns.Count).End(xlToLeft).Column

      'Step 7 to cater for the every forth Column plus the 7 columns being added
      'Started at 6 because "After every four columns" means the fith Column and catering for the Cal Day in Column 1
      Dim CurrentColumn As Long
      For CurrentColumn = 6 To LastColumn Step 7

           'Current Column to CurrentColumn + 2 will have 3 Cells selected
           CurrentWorkSheet.Range(Cells(1, CurrentColumn), Cells(1, CurrentColumn + 2)).Insert Shift:=xlToRight

           'Copy Data from the second column from the right and paste into the first new column
           CurrentWorkSheet.Columns(CurrentColumn - 2).Copy
           CurrentWorkSheet.Columns(CurrentColumn).PasteSpecial Paste:=xlPasteValues

           'Copy Data from the first column from the right and paste into the second new column
           CurrentWorkSheet.Columns(CurrentColumn - 1).Copy
           CurrentWorkSheet.Columns(CurrentColumn + 1).PasteSpecial Paste:=xlPasteValues


      Next CurrentColumn

 End Sub

请参阅下面之前和之后:

enter image description here

对于5,6和7插入,您可以编辑这四个插入循环以满足其他插入。