乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > 我做的word文档字数多 分页了 怎么弄成一页

我做的word文档字数多 分页了 怎么弄成一页

作者:乔山办公网日期:

返回目录:office365


Option Explicit
Sub SaveAsFileByPage()
'分页保存,适用于WORD97及其以上版本
Dim objShell As Object, objFolder As Object, strNameLenth As Integer
Dim mySelection As Selection, myFolder As String, myArray() As String
Dim ThisDoc As Document, myDoc As Document, strName As String, N As Integer
Dim myRange As Range, PageString As String, pgOrientation As WdOrientation
Dim sinLeft As Single, sinRight As Single, sinTop As Single, sinBottom As Single
Dim ErrChar() As Variant, oChar As Variant, sinStart As Single, sinEnd As Single
Const myMsgTitle As String = "ExcelHome_ShouRou"
Dim vbYN As VbMsgBoxResult
sinStart = Timer
On Error GoTo ErrHandle '设置错误处理
'创建一个Shell.Application对象
Set objShell = CreateObject("Shell.Application")
'取得文件夹浏览器
Set objFolder = objShell.BrowseForFolder(0, "请选择一个文件夹", 0, 0)
If objFolder Is Nothing Then Exit Sub
myFolder = objFolder.Self.Path & ""
Set objFolder = Nothing: Set objShell = Nothing
Set ThisDoc = ActiveDocument '定义一个Document对象,以利用本程序作为加载宏
Set mySelection = ThisDoc.ActiveWindow.Selection
'文件自动命名时必须规避的字符
ErrChar = Array("", "/", ":", "*", "?", """", "<", ">", "|")
'一些特列字符
For N = 0 To 31
ReDim Preserve ErrChar(UBound(ErrChar) + 1)
ErrChar(UBound(ErrChar)) = Chr(N)
Next
strNameLenth = Val(VBA.InputBox(prompt:="请输入您需要设置的文件名长度,0或者取消将自动命名!", Title:=myMsgTitle, Default:=10))
If strNameLenth > 255 Then strNameLenth = 0
vbYN = MsgBox("是否需要处理页尾的分隔符(分页符/分节符)?它可能会影响文档结构.", vbYesNo + vbInformation + vbDefaultButton2, myMsgTitle)
Application.ScreenUpdating = False '关闭e5a48de588b6e799bee5baa6e997aee7ad94339屏幕更新
'在文档的每页中循环
For N = 1 To mySelection.Information(wdNumberOfPagesInDocument)
mySelection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=N
Set myRange = ThisDoc.Bookmarks("PAGE").Range
If vbYN = vbYes And VBA.Asc(myRange.Characters.Last.Text) = 12 Then _
myRange.SetRange myRange.Start, myRange.End - 1
'取得一个以段落标记为分隔符的一维数组
myArray = VBA.Split(myRange.Text, Chr(13))
'将所有文本合并为一个字符串
PageString = VBA.Join(myArray, "")
'取得文档中每节的页面设置
With myRange.Sections(1).PageSetup
sinLeft = .LeftMargin '左页边距
sinRight = .RightMargin '右页边距
sinTop = .TopMargin '上边距
sinBottom = .BottomMargin '下边距
pgOrientation = .Orientation '纸张方向
End With
For Each oChar In ErrChar '进行一系列替换,即删除无效字符
PageString = VBA.Replace(PageString, oChar, "")
Next
If strNameLenth = 0 Then
strName = ThisDoc.Name
strName = VBA.Replace(LCase(strName), ".doc", "")
strName = strName & "_" & N
Else
strName = VBA.Left(PageString, strNameLenth) '取得文件名
End If
strName = strName & ".doc"
myRange.Copy '复制
Set myDoc = Documents.Add(Visible:=False) '新建一个隐藏的空白文档
With myDoc
.Content.Paste '粘贴
.Content.Paragraphs.Last.Range.Delete '删除最后一个段落标记
With .PageSetup '进行页面设置
.Orientation = pgOrientation
.LeftMargin = sinLeft
.RightMargin = sinRight
.TopMargin = sinTop
.BottomMargin = sinBottom
End With
'如果有相同的文档,则自动命名
If VBA.Dir(myFolder & strName, vbDirectory) <> "" Then strName = "Page_" & N & ".doc"
.SaveAs myFolder & strName '另存为
.Close '关闭文档
End With
Next
ThisDoc.Characters(1).Copy '变相清空剪贴板
Application.ScreenUpdating = True '恢复屏幕更新
sinEnd = Timer '取得代码运行结束的时间
If MsgBox("分页保存结束,用时:" & sinEnd - sinStart & _
"秒,是否打开指定文件夹查看分页保存后的文档情况?", vbYesNo, myMsgTitle) = vbYes Then _
ThisDoc.FollowHyperlink myFolder
Exit Sub
ErrHandle:
MsgBox "错误号:" & Err.Number & vbLf & "出错原因:" & Err.Description, myMsgTitle
Err.Clear
Application.ScreenUpdating = True '恢复屏幕更新
End Sub

解决做的word文档字数多 分页了 怎么弄成一页的步骤如下:

1.首先打开Word软件。

2.如果发现Word文档变成这样双页面的形式。

3.在编辑栏上方的【视图】。

4.【视图】的下方有三个选项“单页”,“双页”,“页宽”,我们选择“单页”显示。这样就解决了我做的word文档字数多 分页了 怎么弄成一页的问题了。


你可以用adobe acrobat x pro软件,把word文件先转化成pdf,然后再在这个软件里面将这个pdf文件拆分,拆分出来一页一页的pdf文件,再用这个软件将zd这些pdf文件转换成word就可以了,试成功了的



1、首先e799bee5baa6e997aee7ad94e78988e69d83362在Word里面打开原始文档;
2、键入Alt+F11打开VBA编辑器;
3、选择菜单命令“插入-模块”;
4、在代码编辑区中输入如下代码:
Option Explicit

Sub SavePagesToMultipleHTMLFiles()

Dim oSourceDoc As Document
Dim oNewDoc As Document
Dim strBaseName As String, strTargetFileName As String
Dim nIndex As Integer
Dim fs As Object

Set oSourceDoc = ActiveDocument
Set fs = CreateObject("Scripting.FileSystemObject")
strBaseName = fs.BuildPath(fs.GetParentFolderName(oSourceDoc.FullName), fs.GetBaseName(oSourceDoc.FullName))

Application.Browser.Target = wdBrowsePage
Selection.GoTo What:=wdGoToPage, Which:=Word.wdGoToFirst

For nIndex = 1 To oSourceDoc.BuiltInDocumentProperties("Number of Pages")
ActiveDocument.Bookmarks("\Page").Range.Copy
Set oNewDoc = Documents.Add
oNewDoc.Range.Paste
strTargetFileName = strBaseName & "_" & nIndex & ".html"
oNewDoc.SaveAs2 strTargetFileName, wdFormatHTML
oNewDoc.Close
Application.Browser.Next
Next

MsgBox "完成!"

End Sub

5、键入F5,运行。
6、检查在原文档相同目录下生成了若干个HTML文件,文件名是原文件后面加_1、_2、_3等,每个HTML文件对应原来一个页面的内容。

_________________________
补充:
请问出现什么错误?出错时是否高亮了代码的具体哪一行?

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网