这是我在本网站上发表的第一篇文章。
我需要一些VBA代码的帮助,这些代码将31/07/00放入单元格“B2”,然后每个月末日期在列中,并在2010年11月31日在单元格“B126”中停止(即单元格B2 = 31/07/00,BA3 = 31/08/00,B4 = 30/09/00等等)。我应该为此做一个循环吗?我不能用宏录音机真正做到这一点,这就是我学习大部分VBA编码的方法。
感谢大家的帮助。
答案 0 :(得分:5)
Sub FillDates()
With Sheet1.Range("B2")
.Value = DateSerial(2000, 7, 31)
.AutoFill .Resize(125, 1), xlFillMonths
End With
End Sub
这将第一个日期放在B2中,然后使用Excel的自动填充(来自Joel答案的填充句柄)来填充接下来的125行中的月份。
答案 1 :(得分:2)
为什么需要宏来做呢? Excel的自动填充非常聪明。
答案 2 :(得分:0)
Sub EndOfMonths()
Dim StartCell As Range
Dim n As Integer
'
Set StartCell = Range("B2")
StartCell.Value = DateSerial(2000, 7, 31)
'
Do
n = n + 1
StartCell.Offset(n, 0).Value = CDate(eomonth(StartCell, n))
Loop While StartCell.Offset(n, 0).Value < DateSerial(2010, 11, 30)
'
End Sub
如果使用Excel 2003,请转到Visual Basic编辑器(Alt + F11)菜单:Extras-&gt; Reference并选择“atpvbaen.xls”。