|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 猪腰子 于 2019-7-30 00:28 编辑
附件.7z
(27.8 KB, 下载次数: 6)
如题有一个挺大的word文档,每一页是一个表格,格式都一样。要把把它每一页生成一个独立的EXL。。。折腾了半天只在论坛上找到一个word按页分裂成word的VBA,还只能取每页第一行做文件名,可是我的表格每一页第一行都是一样的。跑了半天就生成一个文件。。。
我想把每一页表格中标红加粗的第六行第三列作为文件名,但是怎么搞都取不了值。。求大神指导一二。
这个是我看守柔前辈贴的。那个Fn取值怎么改都改不对。。
- Sub SaveAsPage()
- Dim PageCount As Integer, StartRange As Long, EndRange As Long, MyRange As Range, Fn As String, MyDoc As Document
- On Error Resume Next
- PageCount = Selection.Information(wdNumberOfPagesInDocument)
- Range(0, 0).Select '将光标移至文档起点
- For i = 1 To PageCount '设置循环次数
- StartRange = Selection.Start '取得该页的第一个字符位置
- Selection.EndKey Unit:=wdLine '将光标移动到该页首行的最后位置
- Fn = Range(StartRange, Selection.End - 1) '-1的目的是防止该页首行含有段落标记,导致出错.
- If i = PageCount Then '如果循环到达最后一页
- EndRange = ActiveDocument.Content.End '将文档最后位置赋值于EndRange
- Else
- Selection.GoToNext (wdGoToPage) '否则,将下一页的起始位置赋值于EndRange(等同于本页的最后位置)
- EndRange = Selection.Start
- End If
- Set MyRange = Range(StartRange, EndRange) '将本页中的内容进行复制
- MyRange.Copy
- Set MyDoc = Documents.Add '新建一空白文档
- MyDoc.Range(0, 0).Paste '在文档开始处粘贴
- MyDoc.SaveAs FileName:=Fn '保存文档名
- MyDoc.Close '关闭文档
- Next
- End Sub
复制代码 |
|