ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 文档中排序问题?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-23 10:29 | 显示全部楼层
413191246se 发表于 2021-1-23 01:52
* 楼主,你不必研究了,我已经知晓原因,毛病出在空行上。我已解决。
* 请将 1 楼你提供的附件示例文档作 ...

请教一下,如果编号有50多个,这个宏代码还可以使用么?

TA的精华主题

TA的得分主题

发表于 2021-1-23 11:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
就本文档,可以试试用段落排序的方法,只是其中文本编号26的段落排序异常,有点怪。
  1. Sub test()
  2. With Documents.Add(ActiveDocument.FullName).Content '在新文档处理
  3.     .Parent.ConvertNumbersToText
  4.     .Sort False, "段落数", wdSortFieldNumeric
  5.     .Text = Replace(.Text, "、" & vbTab, ". ")
  6. End With
  7. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-1-23 12:15 | 显示全部楼层
本帖最后由 413191246se 于 2021-1-23 12:22 编辑

多少都可以,但注意中英段落要相同。格式和示例文档要一样,不要有分节符/分页符等字符。
我的代码仅对你的示例文档有效!(其实我个人觉得,要想来中英对照,最好是中文一个文档,假设叫 1.docx;英文一个文档,假设叫 2.docx;这样比较好。)——请注意:中间的“第五单元单词听写”不要删除,因为全靠这个“第”字来判断呢!(该段要是换成别的字也可以,但第一个字必须是汉字。)

TA的精华主题

TA的得分主题

发表于 2021-1-23 12:16 | 显示全部楼层
QQ截图20210123093400.png
我用段段对照工具一键解决了!前提是备好2份文件,一个是原文,另一个是译文,才可以用。

111.rar

27.63 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2021-1-23 12:26 | 显示全部楼层
楼主,要是你经常要处理中英对照试卷的话,如果方便的话(不怕泄密),可以把一份完整的试卷打包发上来,我重新编一下码方便你处理。——因为一份试卷,可能还有其它题型,你要处理的这部分也许可以先选定。

TA的精华主题

TA的得分主题

发表于 2021-1-23 13:30 | 显示全部楼层
sylun 老师 太高明了!短短几行,顶上我千军万马!
这句“Documents.Add(ActiveDocument.FullName)”,还可以这样写!头一次见到。sort 方法我也查了查,不会用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-23 20:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2021-1-23 12:26
楼主,要是你经常要处理中英对照试卷的话,如果方便的话(不怕泄密),可以把一份完整的试卷打包发上来,我 ...

谢谢!暂时没有别的试卷,这是老师出的题目,有时要进行汇总,我之前排版是分开排版的,汇总要把中文和英文排版在一起,题目不会超出50个,能用就行。非常感谢你的帮助!

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-23 20:28 | 显示全部楼层
晨晓之黎 发表于 2021-1-23 12:16
我用段段对照工具一键解决了!前提是备好2份文件,一个是原文,另一个是译文,才可以用。

你好!我只想找到解决的方法,你帮我现在排版好了,下次遇到同样的问题,我不会做了。

TA的精华主题

TA的得分主题

发表于 2021-1-24 03:07 | 显示全部楼层
本帖最后由 413191246se 于 2021-1-24 12:03 编辑

* 楼主 还应该感谢 sylun 老师 和 ming0018 老师。他们两个可是本坛大神!还有 晨晓 朋友。

TA的精华主题

TA的得分主题

发表于 2021-1-24 11:57 | 显示全部楼层
* 楼主,我重新编写了程序,没有多余的步骤,仅对你的示例文档有效,请试用:
  1. Sub Chinese_English_View_20210124()
  2.     Dim i As Paragraph, r As Range, s As Range, n&, j&
  3.     With ActiveDocument
  4.         .ConvertNumbersToText
  5.         .Content.Find.Execute "[^13^l]", , , 1, , , , , , "^p", 2
  6.         For Each i In .Paragraphs
  7.             If Len(i.Range) = 1 Then i.Range.Delete
  8.         Next
  9.     End With
  10.     With Selection
  11.         .HomeKey 6
  12.         Do
  13.             .MoveEnd 4
  14.         Loop Until Asc(.Next) < 0
  15.         Set r = .Range
  16.         j = .Paragraphs.Count
  17.         .MoveRight
  18.         .EndKey 6, 1
  19.         Set s = .Range
  20.         Do
  21.             n = n + 1
  22.             r.Paragraphs(n).Range.Characters.Last.InsertBefore Text:="`" & Replace(s.Paragraphs(n).Range.Text, vbCr, "")
  23.         Loop Until n = j
  24.         s.Delete
  25.         .HomeKey 6
  26.     End With
  27.     ActiveDocument.Content.Find.Execute "`", , , 0, , , , , , "^p", 2
  28. End Sub
复制代码

评分

1

查看全部评分

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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