想要删除Word文档中,包含特定描述的标题下所有内容(包含各级子标题以及正文描述)。
例如下图中,想删除1.2.1.19.1业务场景下所有内容:
简单版:
删除光标停留位置的大纲级别下所有的内容。实现的JS代码如下:
ActiveWindow.ActivePane.View.Type = wdOutlineView;if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal)
{//删除本大纲级别下的所有内容ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel); Selection.Paragraphs.Item(1).Range.Select();Selection.Delete(wdCharacter,1);
} ActiveWindow.ActivePane.View.Type = wdNormalView;
其中,指定视图类型WdViewType 枚举类型说明如下:
名称 | 值 | 说明 |
---|---|---|
wdMasterView | 5 | 主控视图。 |
wdNormalView | 1 | 普通视图。 |
wdOutlineView | 2 | 大纲视图。 |
wdPrintPreview | 4 | 打印预览视图。 |
wdPrintView | 3 | 页面视图。 |
wdReadingView | 7 | 阅读视图。 |
wdWebView | 6 | Web 视图。 |
进阶版:
查找指定的文本,文本如果为标题,则删除该标题下所有的子标题和文本内容。实现的JS代码参考如下:
function 删除标题内容()
{findStr = "业务场景";ActiveWindow.ActivePane.View.Type = wdOutlineView;while(1){Selection.Find.Forward = true; Selection.Find.Text = findStr;Selection.Find.Wrap = wdFindAsk;ActiveWindow.ActivePane.View.ShowAllHeadings();let re = Selection.Find.Execute(findStr, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, wdReplaceNone, undefined, undefined, undefined, undefined);if(re == false){Selection.HomeKey(wdStory,wdMove); ActiveWindow.ActivePane.View.Type = wdNormalView;MsgBox("无法找到您查找的内容:"+findStr,jsOKOnly,"提示");return;} else{ if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal){//删除本大纲级别下的所有内容ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel); Selection.Paragraphs.Item(1).Range.Select();Selection.Delete(wdCharacter,1);} } }}