用vba写一段代码,在EXCEL表中生成一个万年历
时间: 2024-10-22 18:10:24 浏览: 19
在Excel中使用VBA生成万年历的代码如下:
```vba
Sub GenerateCalendar()
Dim year As Integer
Dim month As Integer
Dim day As Integer
Dim firstDayOfMonth As Date
Dim lastDayOfMonth As Date
Dim i As Integer
Dim ws As Worksheet
' 设置年份和月份
year = InputBox("请输入年份:")
month = InputBox("请输入月份:")
' 创建一个新的工作表
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = year & "年" & month & "月"
' 计算该月的第一天和最后一天
firstDayOfMonth = DateSerial(year, month, 1)
lastDayOfMonth = DateSerial(year, month + 1, 0)
' 在工作表中填写日期
For i = 1 To Day(lastDayOfMonth)
ws.Cells(1, i + 1).Value = i
Next i
' 格式化日期
With ws.Range(ws.Cells(1, 2), ws.Cells(1, Day(lastDayOfMonth) + 1))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
.Borders.Weight = xlThin
End With
' 设置列宽和行高
ws.Columns.AutoFit
ws.Rows.AutoFit
End Sub
```
这段代码首先通过输入框获取用户输入的年份和月份,然后在Excel中创建一个新的工作表,并命名为“[年份]年[月份]月”。接着,代码计算出该月的第一天和最后一天,并在工作表中填充每一天的日期。最后,对日期进行格式化,包括居中对齐、加粗字体和设置边框等,并自动调整列宽和行高以适应内容。
阅读全文