一、代碼需求
有一列日期資料,因中間有間隔月份,需要把月份補齊

如圖: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 =
For n = To z
If Cells(y - , "B").Value <> Then
Rows(y).Resize(Cells(y - , "B").Value).Insert
For x = To Cells(y - , "B").Value
Cells(y, "A").Value = DateAdd("m", , Cells(y - , "A").Value)
y = y +
Next
End If
y = y + Cells(y - , "B").Value +
Next n
End Sub
注釋版:
Sub 插入行并添加值()
Dim x As Integer, y As Integer, z As Integer, n As Integer
z = Sheet4.Range("a65536").End(xlUp).Row '一共有多少行數
y = '根據不同的情形需要調整
For n = To z '控制整體循環的次數
If Cells(y - , "B").Value <> Then
'這個語句是因為rows(A).resize(B).insert 當B為0時語句報錯,設定IF,如果插入行為0跳過該循環
Rows(y).Resize(Cells(y - , "B").Value).Insert
'該語句作用是在y行的上方插入(Cells(y - 1, "B").Value)行空行
For x = To Cells(y - , "B").Value
'該循環是為了将插入空行中添加日期
Cells(y, "A").Value = DateAdd("m", , Cells(y - , "A").Value) 'dateadd函數直接添加月份
y = y +
Next
End If
y = y + Cells(y - , "B").Value +
Next n
End Sub