ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] WORD VBA排版怎么绕过表格文本?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-1-12 13:10 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在大神413191246se的帮助下,搞了个WORD VBA的自动排版工具,但问题来了,每次排版都会对表格了的文档进行调整,有没有方法跳过表格段落,只对一般文本进行设置呢?

TA的精华主题

TA的得分主题

发表于 2021-1-12 17:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Range.Information (wdWithInTable) = true 的时候就是在表格内

TA的精华主题

TA的得分主题

发表于 2021-1-12 23:02 | 显示全部楼层
楼主,大神不敢当!在我的《自动排版宏》里面的《公文排版》宏中,你可以读到"首表下方/表间循环/末表下方"这 3 段代码,它的作用就是只处理表格外的文本而不处理表格内的文本,请在 VBE 中将光标放在代码行上按 F8 键逐行调试程序即可明白。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-13 11:09 | 显示全部楼层
413191246se 发表于 2021-1-12 23:02
楼主,大神不敢当!在我的《自动排版宏》里面的《公文排版》宏中,你可以读到"首表下方/表间循环/末表下方" ...

在不断学习你的代码,遇到新问题了。窗体里的代码怎么相互调用呢?就像模块里的代码相互调用一样。

TA的精华主题

TA的得分主题

发表于 2021-1-13 13:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
* 窗体里的每个按钮,双击即可进入它的代码编辑模块(宏)中,这也叫事件;然后就直接写代码了。
* VBE 中选中 Normal,插入菜单——用户窗体(双击窗体属性ShowModel使之变为:False)——在窗体上新建一个复选框(名称:chkOfficial,Caption:公文),新建一个命令按钮(名称:cmdAutoType,Caption:排版)。双击命令按钮“排版”进入你的按钮模块,但是请全部删除,替换上我的代码,打开一篇文档,在窗体上点击 "运行"按钮(三角形),公共变量 g(公文首字母)=1 代表公文排版,0 代表普通排版。
  1. Option Explicit
  2. Dim g As Long
  3. Private Sub chkOfficial_Click()
  4.     If chkOfficial Then g = 1 Else g = 0
  5. End Sub
  6. Private Sub cmdAutoType_Click()
  7.     With ActiveDocument.Content.Font
  8.         If g = 0 Then
  9.             .Name = "楷体"
  10.             .Size = 14
  11.             .ColorIndex = wdPink
  12.         Else
  13.             .Name = "仿宋"
  14.             .Size = 16
  15.             .ColorIndex = wdBlue
  16.         End If
  17.     End With
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-1-13 13:07 | 显示全部楼层
在 NewMacros 模块新建一个过程,如:sub RunUserForm,写上 userform1.show 即可调用窗体,设为热键更为方便。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-13 16:18 | 显示全部楼层
413191246se 发表于 2021-1-13 13:07
在 NewMacros 模块新建一个过程,如:sub RunUserForm,写上 userform1.show 即可调用窗体,设为热键更为方 ...

我的意思是窗体里面有多个过程,怎么相互调用。

TA的精华主题

TA的得分主题

发表于 2021-1-13 17:19 | 显示全部楼层
楼主,一般过程是放在 NewMacros 模块中,窗体按钮代码可以直接调用;至于窗体的过程怎么调用,这我还真说不好。窗体按钮都是事件驱动的。窗体设计我也不在行(最近几天我也想玩玩窗体,结果,昨晚窗体还出错了,我暂时放弃窗体了)。或请查询网络吧!

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-13 17:56 | 显示全部楼层
413191246se 发表于 2021-1-13 17:19
楼主,一般过程是放在 NewMacros 模块中,窗体按钮代码可以直接调用;至于窗体的过程怎么调用,这我还真说 ...

主要是窗体里有变量,又没弄懂模块怎么调用窗体的变量(或者是输入的值)

TA的精华主题

TA的得分主题

发表于 2021-1-14 02:08 | 显示全部楼层
楼主,第 5 楼,第 2 行代码,g 变量 只要放在过程前面,就是窗体模块的全局变量了啊!你可以试试。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 01:02 , Processed in 0.035816 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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