zoukankan      html  css  js  c++  java
  • VBA实现批量修改Word文档的页脚内容

    VBA实现批量修改Word文档的页脚内容

    功能示例:

    有很多个doc文档,页脚的电话变了,如原电话是4007339339,现在变成4007168339了,要实现批量替换,可使用此程序。

    使用说明:

    1、 复制下面程序代码到VBA里后,点“工具”-“宏”-“宏”-“change”-“运行”

    2、 输入目录(不要输入根目录,要不速度会很慢)

    3、 输入要查找的内容

    4、 输入的替换成你要的内容

    --------------------------------------------

    '下面是程序代码,复制到Word的VBA里


    '此子程序放在Word对象里
    Option Explicit
    Sub change()

          Dim s As String
    Dim wb As Object
    Dim i As Long
    Dim load As String
    Dim find As String
    Dim change As String

    load = InputBox("输入要修改页脚的文件夹路径,自动扫描子文件夹-------------垃圾桶丁2009-3-8")   '要变更的目录
    find = InputBox("输入要查找的页脚内容")   '查找的内容
    change = InputBox("请问要替换成什么内容?") '替换的内容

    Set wb = Application.FileSearch
        With wb
            .NewSearch
            .LookIn = load
            .SearchSubFolders = True
            .FileName = "*.doc"
            .FileType = msoFileTypeExcelWorkbooks
            If .Execute() > 0 Then
                For i = 1 To .FoundFiles.Count
                    On Error Resume Next
                s = .FoundFiles(i)

                Call Macro1(s, find, change)
                 Next i
            End If
         End With
    End Sub

    '此子程序放在模块里

    Option Explicit
    Sub Macro1(s As String, find As String, change As String)

          
        Documents.Open FileName:=s, ConfirmConversions:=False, _
            ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
            PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
            WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        If Selection.HeaderFooter.IsHeader = True Then
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
        Else
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        End If
        Selection.find.ClearFormatting
        Selection.find.Replacement.ClearFormatting
        With Selection.find
            .Text = find '查找的内容
            .Replacement.Text = change '替换的内容
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.find.Execute Replace:=wdReplaceAll
        ActiveWindow.Close (wdSaveChanges)

    End Sub

  • 相关阅读:
    找工过程中碰到的笔试面试题整理(1)
    windows核心编程学习笔记(五.续)堆
    windows核心编程学习笔记(二)Wait For Kernel Object(s)
    windows核心编程学习笔记(四)windows内存结构/虚拟内存/线程的堆栈
    [转]筛选法求素数
    windows核心编程学习笔记(五)内存映射文件
    windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling)
    [转]亲密接触VC6.0编译器
    windows核心编程学习笔记(三)线程池(Thread Pooling)
    windows核心编程学习笔记(七)DLL Injection and API Hooking
  • 原文地址:https://www.cnblogs.com/Ellen/p/2073882.html
Copyright © 2011-2022 走看看