因为含1000页的单个文件太大,打开太费时。文件本身都有100M了
千万别说让复制再粘贴,会憋疯的!
请尝试如下步骤:
1、打开需要分割的PPT文档(假设文件名为“原始文档.ppt”);
2、键入Alt+F11切换到VBA编辑环境,然后选择菜单“插入-模块”;
3、在代码编辑区粘贴如下代码:
Option Explicit
Sub SplitSlides()
Dim oSrcPresentation As Presentation, oNewPresentation As Presentation
Dim strSrcFileName As String, strNewFileName As String
Dim nIndex As Integer, nSubIndex As Integer, nTotalSlides As Integer, nBound As Integer, nCounter As Integer
Dim fso As Object
Const nSteps = 5 ' 修改这里控制每隔几页分割一次
If nSteps <= 0 Then Exit Sub
Set fso = CreateObject("Scripting.FileSystemObject")
Set oSrcPresentation = ActivePresentation
strSrcFileName = oSrcPresentation.FullName
nTotalSlides = oSrcPresentation.Slides.Count
nCounter = 1
For nIndex = 1 To nTotalSlides Step nSteps
If nIndex + nSteps > nTotalSlides Then
nBound = nTotalSlides
Else
nBound = nIndex + nSteps - 1
End If
strNewFileName = fso.BuildPath(fso.GetParentFolderName(strSrcFileName), _
fso.GetBaseName(strSrcFileName) & "_" & nCounter & "." & fso.GetExtensionName(strSrcFileName))
oSrcPresentation.SaveCopyAs strNewFileName
Set oNewPresentation = Presentations.Open(strNewFileName)
If nBound < nTotalSlides Then
For nSubIndex = nBound + 1 To nTotalSlides
oNewPresentation.Slides(nBound + 1).Delete
Next
End If
If nIndex > 1 Then
For nSubIndex = 1 To nIndex - 1
oNewPresentation.Slides(1).Delete
Next
End If
oNewPresentation.Save
oNewPresentation.Close
nCounter = nCounter + 1
Next nIndex
MsgBox "结束!", vbInformation
End Sub
4、修改代码中指定的分割页数;
5、键入F5运行,直到提示“完成!”
6、在源PPT所在目录下生成一系列命名为“原始文档_1.ppt”、“原始文档_2.ppt”……的新文档,即为分割之后的结果。
附注:原来想用更简单的一个API函数Slides.InsertFromFile,但是发现通过这个函数插入的PPT无法保留原始文档中的背景等信息。所以只好采用现在这样的另存为并删除多余幻灯片的“笨”办法了。
其它朋友看看有没有更好的主意,也可以分享一下……
1、打开需要分割的PPT文档(假设文件名为“原始文档.ppt”);
2、键入Alt+F11切换到VBA编辑环境,然后选择菜单“插入-模块”;
3、在代码编辑区粘贴如下代码:
Option Explicit
Sub SplitSlides()
Dim oSrcPresentation As Presentation, oNewPresentation As Presentation
Dim strSrcFileName As String, strNewFileName As String
Dim nIndex As Integer, nSubIndex As Integer, nTotalSlides As Integer, nBound As Integer, nCounter As Integer
Dim fso As Object
Const nSteps = 5 ' 修改这里控制每隔几页分割一次
If nSteps <= 0 Then Exit Sub
Set fso = CreateObject("Scripting.FileSystemObject")
Set oSrcPresentation = ActivePresentation
strSrcFileName = oSrcPresentation.FullName
nTotalSlides = oSrcPresentation.Slides.Count
nCounter = 1
For nIndex = 1 To nTotalSlides Step nSteps
If nIndex + nSteps > nTotalSlides Then
nBound = nTotalSlides
Else
nBound = nIndex + nSteps - 1
End If
strNewFileName = fso.BuildPath(fso.GetParentFolderName(strSrcFileName), _
fso.GetBaseName(strSrcFileName) & "_" & nCounter & "." & fso.GetExtensionName(strSrcFileName))
oSrcPresentation.SaveCopyAs strNewFileName
Set oNewPresentation = Presentations.Open(strNewFileName)
If nBound < nTotalSlides Then
For nSubIndex = nBound + 1 To nTotalSlides
oNewPresentation.Slides(nBound + 1).Delete
Next
End If
If nIndex > 1 Then
For nSubIndex = 1 To nIndex - 1
oNewPresentation.Slides(1).Delete
Next
End If
oNewPresentation.Save
oNewPresentation.Close
nCounter = nCounter + 1
Next nIndex
MsgBox "结束!", vbInformation
End Sub
4、修改代码中指定的分割页数;
5、键入F5运行,直到提示“完成!”
6、在源PPT所在目录下生成一系列命名为“原始文档_1.ppt”、“原始文档_2.ppt”……的新文档,即为分割之后的结果。
附注:原来想用更简单的一个API函数Slides.InsertFromFile,但是发现通过这个函数插入的PPT无法保留原始文档中的背景等信息。所以只好采用现在这样的另存为并删除多余幻灯片的“笨”办法了。
其它朋友看看有没有更好的主意,也可以分享一下……
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-10-21
编程更会疯,你试一下记录宏,看能不能解决。
第2个回答 2011-10-21
打开文件之前多复制几个副本,每个副本只保留50页的PPT,其余的删除掉
第3个回答 2019-10-24
以WPS 2019版本为例:
如需将1000页的PPT文件分割成若干个,可使用WPS2019中已自带的「文档拆分」功能:
操作步骤:
1)打开其中一份「演示(ppt)」文档;
2)点击「特色应用-拆分合并-拆分」;
3)点击添加需合并文件,设置合并文件需合并的页数范围即可将多个文档合并为一份。
- 官方电话官方服务
- 官方网站