【发布时间】:2019-11-15 00:33:59
【问题描述】:
我正在寻找将一个大文件拆分为小文件的最有效方法。每个小文件都是大文件中的一段。 如果大文件有大约 100 个段落,这不是问题,但如果超过 12k,则需要很长时间。
现在我正在为每个段落设置书签,接下来我将在新文件中插入每个书签(我设置书签是因为有时我必须插入多个段落,但现在我不想让示例复杂化,所以我用段落来描述我的问题)。
这是我的代码(这是一个没有额外逻辑和错误处理的简单示例)。 创建新文件、保存和关闭最耗时。
Private Sub InsertBookmarks()
Dim p As Paragraph
Dim counter As Long
For Each p In ActiveDocument.Paragraphs
counter = counter + 1
ActiveDocument.Bookmarks.Add "File" & Format(counter, "00000#"), p.Range
Next p
ActiveDocument.Save
Set p = Nothing
End Sub
Private Sub SplitToSeparateFiles()
Dim path As String
Dim doc As Document
Dim b As Bookmark
path = ActiveDocument.path & "\"
WordBasic.DisableAutoMacros
For Each b In ActiveDocument.Bookmarks
Set doc = Documents.Add(Visible:=False)
doc.Range.FormattedText = b.Range
doc.SaveAs2 FileName:=path & b.Name
doc.Close wdDoNotSaveChanges
Next b
Set b = Nothing
Set doc = Nothing
End Sub
我考虑更改我的代码以在后台使用 WordOpenXml 处理拆分,但我没有找到任何解决方案。 如果有人对 .net 环境有任何想法,我可能会使用 VSTO 插件。
有什么更高效的方法吗?
【问题讨论】:
-
是什么激发了让流程“更高效”的愿望? “高效”是什么意思?
-
现在花了很长时间,有时>8小时。