vba批量将word文件名替换里面的一个固定字段,如何实现?
就是我想把D盘abc文件夹中的所有文档里面出现的“2019年度党员个人信息采集表”都变成“文件名-个人信息采集表”。比如“张三.doc”这个文档里面的内容“2019年度党...
就是我想把D盘abc文件夹中的所有文档里面出现的“2019年度党员个人信息采集表”都变成“文件名-个人信息采集表”。
比如“张三.doc”这个文档里面的内容“2019年度党员个人信息采集表”就变成了“张三-个人信息采集表”;“李四.doc”这个文档里面的“2019年度党员个人信息采集表”就变成了“李四-个人信息采集表”。
方法好用,额外加分。 展开
比如“张三.doc”这个文档里面的内容“2019年度党员个人信息采集表”就变成了“张三-个人信息采集表”;“李四.doc”这个文档里面的“2019年度党员个人信息采集表”就变成了“李四-个人信息采集表”。
方法好用,额外加分。 展开
2个回答
展开全部
参考代码:
Option Explicit
Sub ModifyContent()
Dim objFile As Object
Dim objFiles As Object
Dim docWord As Document
' 使用时请修改此处的 Path 路径和 Drive 盘符, 路径之间用双斜线隔开!
Const SQL_SELECT_FILES As String = "SELECT * " & _
"FROM CIM_DataFile " & _
"WHERE Path = '\\abc\\' AND " & _
" Drive = 'D:' AND " & _
" Extension LIKE 'doc%'"
Set objFiles = GetObject("winmgmts:\\.\root\cimv2").ExecQuery(SQL_SELECT_FILES)
' /* 遍历文件. */
For Each objFile In objFiles
Set docWord = Documents.Open(objFile.Name)
With docWord.ActiveWindow
While .Selection.Find.Execute("2019年度党员个人信息采集表")
Selection.Text = objFile.FileName & "-个人信息采集表"
Wend
End With
docWord.Save
docWord.Close
Next
Set objFile = Nothing
Set objFiles = Nothing
Set docWord = Nothing
End Sub
展开全部
Sub?Test()????Dim?f,?n,?x,?wb,?fName????On?Error?Resume?Next????Cells.Clear????'打开文件(可多选)????f?=?Application.GetOpenFilename("Word文件,*.docm,",?1,?"选择文件",?MultiSelect:=True)????'遍历每个选择的文件????For?x?=?1?To?UBound(f)????sFile?=?f(x)????????'取文件名,并赋值给单元格????????n?=?Len(sFile)?-?InStrRev(sFile,?"\")????????fName?=?Right(sFile,?n)????????Cells(x,?1)?=?Left(fName,?InStr(fName,?"?")?-?1)???????????????????????????????????????????'取1到空格前的字符????????'Cells(x,?1)?=?Left(fname,?9)??????????????????????????????????????????????????????????????'取文件名的前9个字符????????Cells(x,?2)?=?Mid(fName,?InStr(fName,?"?")?+?1,?Len(fName)?-?InStr(fName,?".")?+?1)????????'取空格后到点之前的字符????????'Cells(x,?2)?=?Mid(fName,?10,?Len(fName)?-?InStr(fName,?".")?+?1)??????????????????????????'从10开始取到点之前的字符????Next?xEnd?Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询