首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在27页文档上运行宏时Word内存不足

在27页文档上运行宏时Word内存不足
EN

Stack Overflow用户
提问于 2021-03-02 08:11:56
回答 1查看 46关注 0票数 0

这篇文章被交叉发布在

Microsoft Answers论坛

..。

下面的宏用于保护有问题的word文档。当它在较小的文档(4-10页)上运行时,它工作得很好,但我们有一个更大的27页文档(6000字),它似乎吸收了所有的内存!当我运行它的时候,我的话就冻结了。

以下是一个OneDrive可重现示例的链接:

https://1drv.ms/w/s!AgPO3BotYSt7iHvafHts2HyF2OjB?e=HSOI57

不确定通过OneDrive访问时格式是否有效,但单击复选框时会显示X。

“您将如何满足建议的说明”后面是一个文本字段,以便用户可以输入文本。“负责任的团队”和“你为什么不同意的理由”也是如此:

宏运行后,除了与上述格式一起呈红色的文本外,应锁定整个文档。

有没有办法调整宏以节省一些内存,使其在用于较大文件时能够运行?

下面是宏:

代码语言:javascript
复制
Sub Lock_Teammate_DraftReports_mp()

Selection.HomeKey wdStory

Selection.Find.ClearFormatting

Selection.Find.Font.ColorIndex = wdRed

With Selection.Find

    Do While .Execute(FindText:="", Forward:=True, MatchWildcards:=False, Wrap:=wdFindStop) = True

        Selection.Editors.Add wdEditorEveryone

        Selection.Collapse wdCollapseEnd

    Loop

End With

ActiveDocument.Protect Password:="example123", NoReset:=False, Type:=wdAllowOnlyReading, 
UseIRM:=False, EnforceStyleLock:=False

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 09:05:51

您的问题很可能与您的代码所做的所有选择有关,这既是低效的,也容易导致大量的滚动和屏幕闪烁。尝试:

代码语言:javascript
复制
Sub Lock_Teammate_DraftReports_mp()
Application.ScreenUpdating = False
With ActiveDocument
  With .Range
    With .Find
      .ClearFormatting
      .Font.ColorIndex = wdRed
      .Text = ""
      .Forward = True
      .Wrap = wdFindStop
      .MatchWildcards = False
    End With
    Do While .Find.Execute = True
      .Editors.Add wdEditorEveryone
      .Collapse wdCollapseEnd
    Loop
  End With
  .Protect Password:="example123", NoReset:=False, Type:=wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
End With
Application.ScreenUpdating = True
End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66431497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档