|
问题一不是问题,用chr(13)分割,得到Arr(),每一元素Arr(i)就是一个段落,程序使用For/Nixt循环依次把所有段落输出到Txt文件中。
问题二,本文档从第129段开始是正文,前面的是目录。
问题三,前一句以序号及文章标题命名文件,后一句仅使用序号和“人民日报评论员文章”字样作文件名。当文章标题中包含非法字符不能用作文件名时,改用第二个方案命名。如果都用第二个方案命名,程序可改为:
- Sub 分割()
- Dim myRange As Range, cPath$, cTxt$, n%, Arr
- cPath = ThisDocument.Path & "\Txt"
- If Dir(cPath, 16) = "" Then MkDir cPath
- Set myRange = ThisDocument.Range
- myRange.SetRange myRange.Start, myRange.End - 1
- Arr = VBA.Split(Replace(myRange.Text, Chr(10), "") & Chr(13) & "人民日报评论员:", Chr(13))
- For i = 129 To UBound(Arr)
- If Arr(i) Like "人民日报评论员:*" Then
- If i > 129 Then Close #1
- If i < UBound(Arr) Then
- n = n + 1
- Open cPath & Format(n, "000 ") & "人民日报评论员文章 " & ".txt" For Output As #1
- Print #1, Arr(i)
- End If
- Else
- Print #1, Arr(i)
- End If
- Next
- MsgBox "保存完毕。"
- End Sub
复制代码
|
|