ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word每个表格之间的空行批量删除,要合并表格

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-2 13:11 | 显示全部楼层
413191246se 发表于 2021-1-2 09:02
* sylun 老师,新年快乐!辛苦了!
* 楼主,我反复试验,几经修改,最后还是决定放弃本宏。因为我用我的中 ...

非常感谢413191246se老师!辛苦了!因为我是翻译排版,稿件大多数是复杂的,大表格,大文档,天天需要处理。

TA的精华主题

TA的得分主题

发表于 2021-1-3 11:04 | 显示全部楼层
413191246se 发表于 2021-1-2 09:02
* sylun 老师,新年快乐!辛苦了!
* 楼主,我反复试验,几经修改,最后还是决定放弃本宏。因为我用我的中 ...

413191246se兄新年好!老兄你现在是word版的主力,我只是偶尔客串一下而已。你的奉献大家都看得到的,佩服!

TA的精华主题

TA的得分主题

发表于 2021-1-3 11:12 | 显示全部楼层
晨晓之黎 发表于 2021-1-2 13:07
非常感谢sylun老师!运行速度快!这里默认的是全选中表格合并,有的不是同一个表格不需要合并,能不能加 ...

修改了一下代码,并增加了表格合并后列对齐处理。不选定内容时针对全文档,不考虑分页符
  1. Sub test2()
  2.     '只对以一个段落分隔的两个表格进行合并,并尝试对齐列,可仅针对选定区域
  3.     Dim myRange As Range
  4.     Dim aTable As Table
  5.     Dim aCol As Column
  6.     Dim c As Byte
  7.     Dim i As Integer
  8.    
  9.     On Error Resume Next
  10.     Application.ScreenUpdating = False
  11.     Set myRange = IIf(Selection.Type = wdSelectionIP, ActiveDocument.Content, Selection.Range)
  12.     For Each aTable In myRange.Tables
  13.         With aTable.Range
  14.             If .Next(wdParagraph, 2).Information(wdWithInTable) = True Then
  15. '                aTable.Rows.Last.Range.HighlightColorIndex = wdYellow '突出显示前一表格的最后一行
  16.                 If .Next(wdTable).Start > myRange.End Then Exit For
  17.                 With .Next(wdTable).Tables(1)
  18.                     '当前表格与下一表格列数相同且下一表格各行列数相同时调整下一表格列宽以对齐列
  19.                     If .Columns.Count = aTable.Columns.Count And .Uniform = True Then
  20.                         For Each aCol In .Columns
  21.                             c = c + 1
  22.                             aCol.Width = aTable.Columns(c).Width
  23.                         Next
  24.                         c = 0
  25.                     End If
  26.                 End With
  27.                 .Next(wdParagraph).Text = Empty
  28.                 i = i + 1
  29.             End If
  30.         End With
  31.     Next
  32.     Application.ScreenUpdating = True
  33.     MsgBox "共合并了" & i & "个相邻的表格。"
  34. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-1-3 11:25 | 显示全部楼层
sylun 老师 的抬举,令我愧不敢当啊!我,热情无限;但,水平有限。心有余而力不足。我还是要永远向各位老师、前辈们学习!

TA的精华主题

TA的得分主题

发表于 2021-1-3 13:15 | 显示全部楼层
本帖最后由 413191246se 于 2021-1-4 10:46 编辑

略。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-3 16:00 | 显示全部楼层
sylun 发表于 2021-1-3 11:12
修改了一下代码,并增加了表格合并后列对齐处理。不选定内容时针对全文档,不考虑分页符

sylun老师,你的代码完美解决,不考虑分页符直接合并表格,太厉害了!谢谢sylun老师!

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-3 16:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2021-1-3 13:15
* 楼主,虽然我宣布对超大文档、超多表格感到无能为力,但刚才还是尝试着重新构思解决你的问题,主要思路是 ...

413191246se老师,你的代码运行结果出错误。不过我已经采用了sylun老师的代码,谢谢你了!

TA的精华主题

TA的得分主题

发表于 2021-1-3 22:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 413191246se 于 2021-1-4 10:45 编辑

略。。。。

TA的精华主题

TA的得分主题

发表于 2021-1-4 09:10 | 显示全部楼层
413191246se 发表于 2021-1-3 22:59
* 楼主:如果是最后出现对话框错误,你只要点击“结束”按钮就行了,因为最后没有下一个表格了,所以,出错 ...

IIF不会用是好事。
就用If..else...end if就行了,因为IIF效率低,代码短未必效率高,代码长也未必效率低。

TA的精华主题

TA的得分主题

发表于 2021-1-4 10:44 | 显示全部楼层
本帖最后由 413191246se 于 2021-1-5 17:03 编辑

ming 老师 新年快乐!——但 IIF 语句仅一行啊,我用 IF 得两行,到底谁快?谁好?我正想努力记住 IIF 的用法。另外,sylun 老师 的代码中,用“>”号表示超出范围就跳出循环,我还得再用一个变量。反正,我觉得这次 sylun 老师 的代码全是闪光点,我得好好学学。——补:IIF函数我还是别用了,还是IF亲切啊!(完成功能即可,不和高手比高级。)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-9 15:07 , Processed in 0.029624 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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