VBA实现不同模板WORD表格内容的批量转移
一、需求分析
随着电子化教案的普及,要求统一按照一个模板进行电子化教案的制作。
电子化教案是Word表格。如果之前已经做过别的模板的Word表格,
只是Word表格中各个单元格的位置与指定模板不同,
每次手动复制粘贴再调格式太慢了。
如何用VBA实现自动的内容转移呢?
既存的word内容
指定的word模板
二、实现思路构思
指定Word模板一个,既存的Word表格多个,
如何让这多个Word表格都按照模板自动作成模板样式的多个Word并生成到指定路径下呢?
序号 | 步骤 |
---|---|
第一步 | 逐一打开既存Word表格 |
第二步 | 每打开一次既存的Word表格,把模板复制到指定目录一次,并改名为课题名 |
第三步 | 逐一读取既存Word表格指定单元格下的值,赋值给变量 |
第四步 | 打开改名后的Word模板,把变量值赋值到指定的位置 |
第五步 | 上述步骤每次赋值结束随时关闭该Word |
三、设计界面
四、三个文本框的作用
第一个文本框选择既存Word表格所在的文件夹。1
第二个文本框选择指定模板的Word文件。
第三个文本框选择希望内容转移后出力的路径。
五、关键控件命名以及重要属性2
三个文本框依次是:
Ipath
MfileVal
Opath
它们的enabled属性都是false,让它们只能选择,不能输入
三个选择按钮命名依次是:
OpenIfolder
OpenMfile
OpenOfolder
实行按钮【Run】的命名是:
BtnRun
关闭按钮【Close】的命名是:
BtnClose
六、代码展示
Option Explicit
Option Base 1
'revision history
'2021/04/12 li xiaotuo first version
'-----------------------------------------------------------------------------------------------------------------------
Private Sub OpenIfolder_Click()
Dim lc_Ifolder As Variant
Ipath.BackColor = vbWhite
lc_Ifolder = GetFolderName(msoFileDialogFolderPicker)
Select Case VarType(lc_Ifolder)
Case vbBoolean
'do nothing
Case vbString
Ipath.Text = lc_Ifolder
Case Else
Ipath.Text = ""
End Select
End Sub
Private Sub OpenMfile_Click()
Dim lc_Mfile As Variant
MfileVal.BackColor = vbWhite
lc_Mfile = Application.GetOpenFilename(FileFilter:="Word,*.doc*", FilterIndex:=1, Title:="Open File", MultiSelect:=False)
If lc_Mfile = False Then
Unload Me
Else
Select Case VarType(lc_Mfile)
Case