ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4390|回复: 2

[求助]插入表格后,如何判断表格分页了?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-10-9 15:24 | 显示全部楼层 |阅读模式

我要用vba插入一个有300行的表格,由于页数太多,我想在每页的第一行做个表头(内容不是第一页第一行,是第一页第二行),把第一页第二行的内容插到每页的第一行。不知该怎么写程序?或怎么判断每一页的第一 行?

谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-10-9 16:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
怎么没人帮忙啊!

TA的精华主题

TA的得分主题

发表于 2005-10-10 06:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这是某软件开发中心的一位网友当时问我的一个回答,供楼主参考:

“我的问题是,当这些表格不满一个页面的时候想用空行填充,使其布满一页 (当行数太少时太难看)如果行数太多,延伸到第二个页面,但第二个页面布满时,也用空 行填充,使其布满第二个页面;所有表格都这样设计;用宏能实现这个功能吗?”

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-10-10 6:01:00 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 00050^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub Example() '几个注意事项: '本代码应: 每节中的第一个表格中应处于该节页面中的0位置 , 也就是从本页面的开始处 '每个页面中 , 表格行数假定为43行, 如果超过43行, 将会移到下一页 '各单元格行距固定,不存在自动换行情况 '表格不存在合并现象 '如果在外来程序中调用WORD,请注意SELECTION对象应为WORD.ACTIVEDOCUMENT.ACTIVEWINDOW.SELECTION对象 Dim oSec As Section, aTable As Table, FirstCellPage As Integer Dim EndCellPage As Integer, RowCount As Integer, CellsCount As Integer Application.ScreenUpdating = False '关闭屏幕更新 For Each oSec In ActiveDocument.Sections Set aTable = oSec.Range.Tables(1) '定义为节中的第一个表格对象 With aTable CellsCount = .Range.Cells.Count '取得单元格总数 RowCount = .Rows.Count '取得总行数 '取得第一个单元格的页数 FirstCellPage = .Range.Cells(1).Range.Information(wdActiveEndPageNumber) '取得最后一个单元格的页数 EndCellPage = .Range.Cells(CellsCount).Range.Information(wdActiveEndPageNumber) '如果处于同一页但行数小于43,补入行数 If FirstCellPage = EndCellPage And RowCount < 43 Then .Rows(RowCount).Select Selection.InsertRowsBelow (43 - RowCount) '如果处于不同页,补入行数 ElseIf EndCellPage > FirstCellPage And RowCount < (EndCellPage - FirstCellPage + 1) * 43 Then .Rows(RowCount).Select Selection.InsertRowsBelow ((EndCellPage - FirstCellPage + 1) * 43 - RowCount) End If End With Next Application.ScreenUpdating = True '恢复屏幕更新 End Sub '----------------------

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 18:21 , Processed in 0.024592 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表