VBA: EXCEL中插入指定的行数并添加值

来源:互联网 发布:xalharmp3软件怎么下载 编辑:程序博客网 时间:2024/05/23 23:24

一、代码需求

有一列日期数据,因中间有间隔月份,需要把月份补齐
这里写图片描述
如图:A列是原始数据,需添加一个辅助列B列:插入的行数,由函数计算得来(=DATEDIF(A2,A3,”m”)-1)

二、代码示例

Sub 插入行并添加值()Dim x As Integer, y As Integer, z As Integer, n As Integer    z = Sheet4.Range("a65536").End(xlUp).Row    y = 3    For n = 0 To z     If Cells(y - 1, "B").Value <> 0 Then        Rows(y).Resize(Cells(y - 1, "B").Value).Insert        For x = 1 To Cells(y - 1, "B").Value          Cells(y, "A").Value = DateAdd("m", 1, Cells(y - 1, "A").Value)          y = y + 1        Next    End If    y = y + Cells(y - 1, "B").Value + 1    Next nEnd Sub

注释版:

Sub 插入行并添加值()Dim x As Integer, y As Integer, z As Integer, n As Integer z = Sheet4.Range("a65536").End(xlUp).Row   '一共有多少行数 y = 3   '根据不同的情形需要调整    For n = 0 To z    '控制整体循环的次数     If Cells(y - 1, "B").Value <> 0 Then            '这个语句是因为rows(A).resize(B).insert 当B为0时语句报错,设定IF,如果插入行为0跳过该循环        Rows(y).Resize(Cells(y - 1, "B").Value).Insert          '该语句作用是在y行的上方插入(Cells(y - 1, "B").Value)行空行        For x = 1 To Cells(y - 1, "B").Value            '该循环是为了将插入空行中添加日期         Cells(y, "A").Value = DateAdd("m", 1, Cells(y - 1, "A").Value)   'dateadd函数直接添加月份         y = y + 1        Next    End If        y = y + Cells(y - 1, "B").Value + 1    Next nEnd Sub

三、运行结果

这里写图片描述

1 0
原创粉丝点击