Word vba 宏批处理应用实例(一)
Office办公软件使用过程中,应用宏进行批处理操作,能帮助工作者节省大量时间,提高办公效率与准确性,而且是一件非常有意思的事情。废话不说了,直接上实例——Word vba之文档表格内容自动合并。 举个栗子,有两个word文档:A和B。A中有200页,每页中有一个表格,表格第一行需要录入天气数据,见图1所示。B中有一个表格,有200行,每行有1条天气数据,见图2所示。现在需要把文档B中的天气数据拷贝到文档A中,你会怎么处理?CTRL+C然后CTRL+V,想想——心累。。。。手好酸。。。。。。。。然而,如果你用Word vba 来处理,你就可以坐在旁边喝咖啡了。 图1 Word文档A 图2 文档B
操作过程很简单,代码也就几行:
1)打开文档A,进入视图选项卡,点击宏图标,打开宏界面,如图。 2)宏名随便输入个名称如“aa”,点击创建,进入Word vba 工程界面,然后复制以下代码,覆盖原有内容,如下图。完成后保存,若无法保存,文档A 另存为启用宏的Word文档(*.docm)。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200616214033494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2lvcDE5ODY=,size_16,color_FFFFFF,t_70)
Sub tianqi_copy()
Dim source, target, ttt As String
source = ""
target = ""
target = ActiveDocument.Name
Dim dias As Dialog
Set dias = Dialogs(wdDialogFileOpen)
If dias.Show = -1 Then
source = dias.Name
End If
If source = "" Or target = "" Then
Exit Sub
End If
Windows(source).Activate
For n = 1 To ActiveDocument.Tables(1).Rows.Count
Windows(source).Activate
ttt = ActiveDocument.Tables(1).Cell(n - 1, 1).Range
ttt = Replace(ttt, Chr(13), "")
Windows(target).Activate
ActiveDocument.Tables(n).Cell(1, 1).Range = ttt
Next
End Sub
3)关闭word vba工程界面,再次点击文档A 宏选项,这回就有个tianqian_copy的宏,选择运行,弹出文件选择窗口,选择B文档,然后就等待执行完毕,时间长可以去喝个咖啡,回来就看到文档A中每个表格已经录好了天气数据。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200616214127841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2lvcDE5ODY=,size_16,color_FFFFFF,t_70)
下期Word vba再举个高级的栗子,那个代码就长了。
|