首页 文章

Excel使用宏插入功能列

提问于
浏览
0

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

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

它可以是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

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

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

    要记住两件事 . 当多个 WorkBooksWorkSheets 可用时,您始终希望使用直接引用 WorkBooks WorkSheets 以避免程序混淆 .

    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插入,您可以编辑这四个插入循环以满足其他插入 .

相关问题