用VBA为Word添加智能表格创建功能
办公族
前不久为管理员小张做了个自动统计工作表,使她终于体验到了VBA带来的强大功能。也许是尝到了甜头,或者是为了方便自己以后偷懒,昨天她又找我帮她编一个在Word中创建表格的VBA小程序,并且要求表格带有日期和星期,以便她进行记录工作。
任务要求
首先,我们需要在Word中按要求创建一个表格,在表格创建好以后,可以利用VBA对表格中的每个单元格按行进行扫描,一旦发现一个单元格处于表格第一列,则在其中插入当前日期和星期,然后往下继续扫描,到达下一个首列单元格插入向后顺延的日期和星期。
完成任务
首先启动Word,创建一个空白文档,依次选择“工具→宏→VisualBasic编辑器”,打开代码编辑窗口,在空白处输入以下代码:
Sub MM()
Dim cWeek(7)
cWeek(1) = "星期日"
cWeek(2) = "星期一"
cWeek(3) = "星期二"
cWeek(4) = "星期三"
cWeek(5) = "星期四"
cWeek(6) = "星期五"
cWeek(7) = "星期六"
Set oDoc = ActiveDocument
'定义一个文档对象
Set oTable = oDoc.Tables.Add(Range:=oDoc.Range(Start:=0, End:=0),
NumRows:=20, NumColumns:=4)
'定义一个20行,4列的表格
icount = 1 '计数器初值为1
For Each oCell In oTable.Range.Cells
'对表格中的每个单元格进行循环扫描
If icount Mod 4 = 1 Then
'如果当前单元格能除以4余数为1,也就是如果是第一列的某个单元格
'则执行以下语句
oCell.Range.InsertAfter Date + (icount - 1) / 4
oCell.Range.InsertAfter cWeek(Weekday(Date + (icount - 1) / 4))
'在第一列某单元格插入当前日期
'在第一列某单元格插入该日期是星期几
End If
icount = icount + 1
'计数器加1
Next oCell
End Sub
代码输入完毕,按“Alt+F11”组合键返回Word主窗口,选择“宏”,在宏对话框中选中对应的宏名MM,单击运行按钮,在文档中就会自动生成了一个20行、4列的表格,并且以当前日期时间为起点,向后依次顺延。
这样以后无论什么时候需要制作表格,只要把该宏运行一下,就可以很方便地得到一个记事表格。