高校联盟精品资源 2021-12-06 10:47 采纳率: 0%
浏览 193
已结题

如何实现自动对一个文件夹下的多个word文档批量执行同一个宏?

代码报错
代码报错

######代码无法运行

仿照改动了一下
我实现自动对一个文件夹下的多个word文档批量执行同一个宏
  • 写回答

4条回答 默认 最新

  • 高校联盟精品资源 2021-12-06 10:49
    关注

    Sub 批量操作WORD()
    Dim path As String
    Dim FileName As String
    Dim worddoc As Document
    Dim MyDir As String
    MyDir = "C:\Users\123456\Downloads" '文件夹路径根据需要自己修改,需要处理的文件都放该文件夹内
    FileName = Dir(MyDir & ".doc", vbNormal)
    Do Until FileName = ""
    If FileName <> ThisDocument.Name Then
    Set worddoc = Documents.Open(MyDir & "" & FileName)
    worddoc.Activate
    Call Word文件改名 '调用宏,换成你自己宏的名字
    worddoc.Close True
    FileName = Dir()
    End If
    Loop
    Set worddoc = Nothing
    End Sub
    '======================下面的宏换成你自己的宏=================================
    Sub Word文件改名()
    Dim myS, myP As String
    myP = ActiveDocument.path
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=13
    Selection.EndKey wdLine
    Selection.HomeKey wdLine, wdExtend
    myS = Selection.Range.Text
    ActiveDocument.SaveAs FileName:=myP & "" & myS & ".doc"
    End Sub
    百度上搜索到的代码 ,可是不能使用

    Sub 批量操作WORD()
    Dim path As String
    Dim FileName As String
    Dim worddoc As Document
    Dim MyDir As String
    MyDir = "C:\Users\hp\Desktop\改名\待处理" '文件夹路径根据需要自己修改,需要处理的文件都放该文件夹内
    FileName = Dir(MyDir & ".doc", vbNormal)
    Do Until FileName = ""
    If FileName <> ThisDocument.Name Then
    Set worddoc = Documents.Open(MyDir & "" & FileName)
    worddoc.Activate
    Call Word完美文档 '调用宏,换成你自己宏的名字
    worddoc.Close True
    FileName = Dir()
    End If
    Loop
    Set worddoc = Nothing
    End Sub
    Sub 完美文档()
    '
    ' 完美文档 宏
    '
    '
    Selection.EndKey Unit:=wdStory
    Selection.EndKey Unit:=wdStory
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.InsertBreak Type:=wdSectionBreakContinuous
    Selection.TypeParagraph
    Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveWindow.Panes(2).Activate
    ActiveDocument.RemoveDocumentInformation (wdRDIDocumentProperties)
    ActiveDocument.Save
    End Sub
    这是我仿照上面作的代码,代码一直报错,崩溃~~~

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月13日
  • 修改了问题 12月6日
  • 修改了问题 12月6日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看