知道开始和结束日期,填写中间的日期

时间:2017-11-20 17:36:51

标签: excel vba excel-vba

我想这可以用其他语言完成,但我必须使用VBA,我是新手。

有两个列表在sheet1中选择日期(均为月末)。一旦选中它们,它们就是起始日期和结束日期。开始日期将复制到工作表2的A1。我希望有一种方法可以动态填充A列的行直到结束日期。无论如何,要么通过VBA还是Excel公式来做呢?谢谢!

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用辅助列在没有VBA的情况下执行此操作。在新的电子表格中,您有完整的日期列表,请将此公式放在旁边。为了便于使用,我已经命名了一个我们可以使用的单元格startDateendDate

=IF(AND(A5>=startDate,A5<=endDate),A5,"")

如果列A 所有日期,则公式位于B列。日期会随着时间范围的调整而显示/消失。

enter image description here

编辑:正如@ScottHoltzman精明地指出的,你实际上可以跳过使用辅助列。在A5中,=startDate然后在A6中填写此内容并填写:= IF(A5+1<=endDate,A5+1,"")

答案 1 :(得分:1)

在Sheet1中使用startdate的VBA中,并在Sheet1中使用endd!B2作为,

With Worksheets("sheet2").Columns("A")
    .Cells.Clear
    .Cells(1) = Worksheets("sheet1").Cells(1, "B").Value2
    .DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, _
                Step:=IIf(Worksheets("sheet1").Cells(2, "B").Value2 > Worksheets("sheet1").Cells(1, "B").Value2, 1, -1), _
                Stop:=Worksheets("sheet1").Cells(2, "B").Value2
    Intersect(.Cells, .Cells.Parent.UsedRange).NumberFormat = "m/d/yyyy"
End With