我想这可以用其他语言完成,但我必须使用VBA,我是新手。
有两个列表在sheet1中选择日期(均为月末)。一旦选中它们,它们就是起始日期和结束日期。开始日期将复制到工作表2的A1。我希望有一种方法可以动态填充A列的行直到结束日期。无论如何,要么通过VBA还是Excel公式来做呢?谢谢!
答案 0 :(得分:1)
您可以使用辅助列在没有VBA的情况下执行此操作。在新的电子表格中,您有完整的日期列表,请将此公式放在旁边。为了便于使用,我已经命名了一个我们可以使用的单元格startDate
和endDate
。
=IF(AND(A5>=startDate,A5<=endDate),A5,"")
如果列A 所有日期,则公式位于B列。日期会随着时间范围的调整而显示/消失。
编辑:正如@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