如何在2个日期之间的所有日期每行一个日期?

时间:2018-04-05 15:07:02

标签: excel vba excel-vba excel-2010 excel-2007

我知道这个问题看起来很复杂,但我想做的很简单,我有两列:

  • 我是我的开始日期
  • L是我的结束日期
  • G是所有日期应该是
  • 的地方

我想要做的是获取每个时段的天数(EndDate - StartDate + 1),添加这么多行并更改每天写入的G值。

我已经对下面的部分进行了编码,但它似乎并不正确:

Sub Dates()
Dim LastRow As Long
Dim addrows
Dim FindDates
Dim CountDays
Dim dddays
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim i As Long
Dim ir As Long
Set ws = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")

With Sheets("Sheet1")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row - 1
End With
addrows = 2

For ir = 1 To LastRow
    FindDates = ws.Range("I" & addrows).Value
    CountDays = ws.Range("L" & addrows).Value - ws.Range("I" & addrows).Value + 1
    Adddays = 0

    For i = 1 To CountDays
        ws2.Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws2.Range("A2").Value = Sheets("Sheet1").Range("A" & addrows).Value
        ws2.Range("C2").Value = FindDates + Adddays
        ws2.Range("C2").Value = ws.Range("G" & addrows).Value
        Adddays = Adddays + 1
    Next i
        addrows = addrows + 1

Next ir

End Sub

文件如下: enter image description here

你可以帮我一下吗? " ws2.Range(" C2")。值= FindDates + Adddays"给我一个错误13

1 个答案:

答案 0 :(得分:0)

  
      
  • 我是我的开始日期
  •   
  • L是我的结束日期
  •   
  • G是所有日期应该是
  • 的地方   
     

我想要做的是获取每个时段的天数(EndDate - StartDate + 1),添加这么多行并更改每天写入的G值。

以上内容对您有所帮助:

Sub Dates()
    Dim ir As Long, countDays As Long

    With Sheets("Sheet1")
        For ir = .Cells(.Rows.Count, "I").End(xlUp).row To 2 Step -1
            With .Rows(ir)
                countDays = .range("L1") - .range("I1") + 1
                If countDays > 1 Then
                    .Offset(1).Resize(countDays - 1).Insert xlDown
                    .Offset(1).Resize(countDays - 1).value = .value
                    With .Resize(countDays).Columns("G")
                        .FormulaR1C1 = "=RC9+ROW()-" & .Rows(1).row
                        .value = .value
                    End With
                End If                        
            End With
        Next
    End With
End Sub