ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 《在某些节中……相对于页面宽度过大》再次修正!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-1-29 14:00 | 显示全部楼层 |阅读模式
本帖最后由 413191246se 于 2021-2-11 02:51 编辑

* 各位朋友,可能有与我遇到的一样的问题:就是大文档,也许有很多表格,有很多分节符和分页符和分栏符,删除所有这么分隔符后,又会提示有很多节,特别是想进行页面设置,会遇到如下问题:
widetoobig.gif
昨晚,经过 3-5 小时的反复试验,再加上也参考了网上网友的经验,最终终于解决了这个难题,其实还是与分栏有关(解决办法就是,把已经分为一栏的全文,再分为两栏,但要勾选栏宽相等,再分为一栏,就 OK 了!未解决时,发现 VBA 设置页面无效!用标尺无效!),解决此难题的 VBA 代码请见下面的宏:

* 最新修正:今天又重新测试了一下,诚如“晨晓之黎”朋友所言,不必分两栏,一栏即可;但要有两个辅助条件:一是栏宽相等;二是删除分节符。这种页面分栏错误的改正,我简称之“分栏纠错”!最新代码如下:——此次修正作废!

* 再次修正:在中午测试公文排版时,想把此最新成果应用到初始化中,结果排版发现,有提示“上下边距过大!”,其实文档是没有任何问题的,归根结底,还是这个分栏在起作用。还是得先分成二栏,再分为一栏才不会出错。所以,我个人认为,一般正常文档还是正常排版就好,比如应用我的《公文排版》或《普通排版》都没有问题;很少情况下,遇到多表格大文档时,里面可能分节过多,情况复杂,这种情况下,如果正常排版出现“在某些节中……设置相对于页面宽度过大。”的提示,只需关闭文档不保存,先应用下面的《分栏纠错》宏,再正常排版就可以了(一般情况下建议不要使用本宏,以免出现各种问题)。
  1. Sub 分栏纠错()
  2.     With ActiveDocument
  3.         '回车符/手动换行符/分节符/分页符/分栏符=>段落标记
  4.         .Content.Find.Execute "[^13^l^12^n]", , , 1, , , , , , "^p", 2

  5.         '继续删除分节符
  6.         With .Content.Find
  7.             .ClearFormatting
  8.             .Text = "^b"
  9.             .Forward = True
  10.             .MatchWildcards = False
  11.             Do While .Execute
  12.                 With .Parent
  13.                     .Text = vbCr
  14.                     .Start = .End
  15.                 End With
  16.             Loop
  17.         End With

  18.         '页面设置/分栏纠错(在某些节中……设置相对于页面宽度过大)
  19.         With .PageSetup
  20.             With .TextColumns
  21.                 .SetCount NumColumns:=2
  22.                 .EvenlySpaced = True
  23.                 .SetCount NumColumns:=1
  24.             End With
  25.         End With

  26.         MsgBox "文档共 " & .Sections.Count & " 节!可以正常排版了!", 0 + 48
  27.     End With
  28. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-1-29 16:33 | 显示全部楼层
其实这个问题我排版需求里面写有,不知道你看到了没?页边距过大就是和分栏,分节符下一页有关。方法就是第一步直接全选改为一栏就可以了,然后删除所有分栏符分节符都删干净,这样后期调页面边距就没问题了。不用先分一栏再分两栏然后再分一栏,太麻烦了!
image.png

GIF---.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-29 17:16 | 显示全部楼层
本帖最后由 413191246se 于 2021-1-29 17:31 编辑

楼上,问题不是这么简单!我是反复试验,最后才成功。谢谢跟帖!

TA的精华主题

TA的得分主题

发表于 2021-2-8 14:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-2-8 16:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-3-18 09:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收藏备用中……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 16:07 , Processed in 0.045676 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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