使用公式在每7列后插入一个新列

时间:2014-02-20 14:10:05

标签: excel excel-vba excel-2013 vba

我有一张包含4000条记录的电子表格,可以不断更新新数据。列标题为员工姓名,项目,活动,2013年6月29日,2013年6月30日......等。这些是从去年10月到本周开始的各个日期,每个列都包含数值。我本周试图修改这个。因此,如果将星期日视为一周的第7天,那么我想从本周的星期日和上周的星期日中减去这些值。而且我希望它继续为其余的列做这个,因为日期将继续更新,所以手动执行它会很费力。

A rough sketch of what I want. Hope it's understandable..

仅供参考我正在使用Excel 2013。

我知道如何执行基本操作,但这个超出了我的理解,所以任何帮助都会非常感激!

Sub insert_column_after_interval_7()
For colx = 7 To 200 Step 8
Columns(colx).Insert Shift:=xlToRight
Next
End Sub

我已将范围指定为200,但数据可能会稍后超出。那么如何在不给出任何特定范围的情况下对其进行修改呢?

1 个答案:

答案 0 :(得分:1)

你可以尝试一下这个:

Sub insert_column_after_interval_7()

dim iLastCol as integer

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

    For colx = 7 To iLastCol Step 8
        Columns(colx).Insert Shift:=xlToRight
    Next

End Sub

当然,由于您可能会添加超过8列,因此使用DO WHILE循环可能会更好