|
本帖最后由 ailvlv 于 2020-5-27 07:18 编辑
学习如何用VBA处理将文档每一页生成一个文件的问题的时候,遇到一个问题,代码将生成的文件名保存为
文件_1.doc,文件_2.doc,文件_3.doc没有问题,可以生成成功
但是想把每一页的第一行信息作为文件名的一部分的时候,如
文件_张三.doc,文件_李四.doc,文件_王五.doc
运行一直报错,不知道该怎么处理才能实现将每一页第一行的信息作为文件名的一部分,请求老师帮忙指导一下,感谢!!
分页处理.rar
(36.27 KB, 下载次数: 4)
- Sub 分页()
- '
- ' 分页 宏
- '
- '
- Dim oSrcDoc As Document
- Dim oNewDoc As Document
- Dim strSrcName As String
- Dim strNewName As String
- Dim oRange As Range
- Dim nIndex As Integer
- Dim fso As Object
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set oSrcDoc = ActiveDocument
- Set oRange = oSrcDoc.Content
- t = ActiveDocument.Path
- oRange.Collapse wdCollapseStart
- oRange.Select
-
-
- For nIndex = 1 To ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
- oSrcDoc.Bookmarks("\page").Range.Copy
- '第一行内容
- txt = oSrcDoc.Bookmarks("\page").Range.Paragraphs.Item(1).Range.Text
- oSrcDoc.Windows(1).Activate
- ' MsgBox txt
- Application.Browser.Target = wdBrowsePage
- Application.Browser.Next
-
- strSrcName = oSrcDoc.FullName
-
- '页码命名文件成功
- ' strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _
- ' fso.GetBaseName(strSrcName) & "_" & nIndex & "." & fso.GetExtensionName(strSrcName))
- '第一行内容命名文件失败
- strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _
- fso.GetBaseName(strSrcName) & "_" & txt & "." & fso.GetExtensionName(strSrcName))
- Set oNewDoc = Documents.Add
- Selection.Paste
- oNewDoc.SaveAs strNewName
- oNewDoc.Close False
- Next
-
- Set oNewDoc = Nothing
- Set oRange = Nothing
- Set oSrcDoc = Nothing
- Set fso = Nothing
- MsgBox "结束!"
- End Sub
复制代码
|
|