vba批量将word文件名替换里面的一个固定字段,如何实现?

就是我想把D盘abc文件夹中的所有文档里面出现的“2019年度党员个人信息采集表”都变成“文件名-个人信息采集表”。比如“张三.doc”这个文档里面的内容“2019年度党... 就是我想把D盘abc文件夹中的所有文档里面出现的“2019年度党员个人信息采集表”都变成“文件名-个人信息采集表”。

比如“张三.doc”这个文档里面的内容“2019年度党员个人信息采集表”就变成了“张三-个人信息采集表”;“李四.doc”这个文档里面的“2019年度党员个人信息采集表”就变成了“李四-个人信息采集表”。

方法好用,额外加分。
展开
 我来答
K_BEAT
2019-06-04 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:402万
展开全部

参考代码:

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
校错藤W
2019-07-11 · TA获得超过10.1万个赞
知道大有可为答主
回答量:2.3万
采纳率:75%
帮助的人:2031万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式