ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怪事:用得好好的一段程序,今天发现不灵

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-6 02:16 | 显示全部楼层
* wdpfox 说得好! 如果不是“元”,而是“月”呢?
* 魏老师,虽然 gbgbxgb 老师 给您讲了一大堆 VBA 方法,但我不得不说,您可能没认真学习过 VBA 微软官方帮助文档。因为在那个文档中,".MoveEnd"方法在举例中出现过多次,我注意到了,然后会了这个方法,顺便也会了 ".MoveStart"方法,受益匪浅!
* 如果 魏老师 掌握了 “.MoveEnd”、“.MoveStart” 这两个方法,这个帖子的问题根本就不算什么问题。
* 魏老师,我建议您,最好有时间把《VBA 微软官方帮助》这个 CHM 文档认真地学习一下,相信会有很大的收获(如果没有,可到我的《Word2003 & 2007 VBA 自动排版宏(集成版)2019-7-9》帖子中点击下载链接下载此文档(空题号问题,我建议:全选,加大段前/段后间距比如30磅,不保存,只记录空题号)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-6 07:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wdpfox 发表于 2019-8-5 23:09
^13[0-9]{1,}[.、.][!0-9^13]排除以小数开头的段落,如“8.9元钱买的……  ”

这是可以的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-6 07:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wdpfox 发表于 2019-8-5 23:12
还是感觉有“ 坑 ”

你的感觉不是多余的。
这可能会查找不连续的文本。比如:
14.今天我买了14.5公斤梨子。
红色的部分即是,这会给后续的处理带来麻烦。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-6 07:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2019-8-5 19:11
* 呵呵! 我挑 魏老师 一句!“解决这个问题还是得你用的。”
* 虽然 gbgbxgb 老师,现在我才认识到非常厉 ...

好的,感谢你了。你对word VBA是非常熟悉的,多向你请教。
先说一声:辛苦了!

TA的精华主题

TA的得分主题

发表于 2019-8-6 08:49 | 显示全部楼层
gbgbxgb 发表于 2019-8-5 17:03
只要如下即可:
Sub 重编序号()
    Dim n&

老师好!
如类似18楼提出的:“8.9元钱买的。99.9的含量。…”参与序号重排(就是在前面再加上序号)。
如类似15楼提出的:如光有一个题号而后面没有题目的,空题号删除。
想请老师改一下代码,从第一个序号开始重排,谢谢!

附件:.rar

6.88 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2019-8-6 08:50 | 显示全部楼层
413191246se 发表于 2019-8-5 19:11
* 呵呵! 我挑 魏老师 一句!“解决这个问题还是得你用的。”
* 虽然 gbgbxgb 老师,现在我才认识到非常厉 ...

老师好!
如类似18楼提出的:“8.9元钱买的。99.9的含量。…”参与序号重排(就是在前面再加上序号)。
如类似15楼提出的:如光有一个题号而后面没有题目的,空题号删除。
想请老师改一下代码,从第一个序号开始重排,谢谢!

附件:.rar

6.88 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2019-8-6 10:56 | 显示全部楼层
* 魏老师:下面代码可以自定义题干部分字数;另外,像“8.9月……”这种情况,执行宏后可以校对一番。
* 校对后,可以重新应用本宏,重新编号。请处理前备份原文档。
  1. Sub aaab题号自动编号()
  2.     Dim n&, v&, x$
  3.     x = InputBox("请问:题干多少字以下不编号?(默认20字以下)", "题号自动编号", "20")
  4.     If x = "" Then Exit Sub
  5.     With ActiveDocument
  6.         '回车符/手动换行符=>段落标记
  7.         .Content.Find.Execute "[^13^11]", , , 1, , , , , , "^p", 2
  8.         '删除域
  9.         .Fields.Unlink
  10.         '列表编号/LISTNUM域转文本
  11.         .ConvertNumbersToText
  12.         '文首插入段落标记
  13.         .Content.InsertBefore Text:=vbCr
  14.         '全文设置为自动色
  15.         .Content.Font.Color = wdColorAutomatic
  16.         With ActiveDocument.Content.Find
  17.             .ClearFormatting
  18.             .Text = "^13[0-90-9]{1,}[..、]"
  19.             .Forward = True
  20.             .MatchWildcards = True
  21.             Do While .Execute
  22.                 With .Parent
  23.                     .MoveStart
  24.                     v = Len(.Paragraphs(1).Range) - Len(.Text) - 1
  25.                     If v >= x Then
  26.                         n = n + 1
  27.                         .Text = n & "."
  28.                         With .Font
  29.                             .Name = "Times New Roman"
  30.                             .Bold = True
  31.                             .Color = wdColorGreen '绿色
  32.                         End With
  33.                         .Characters.Last.Font.NameFarEast = "宋体"
  34.                     Else
  35.                         .Paragraphs(1).Range.Font.Color = wdColorRed '红色
  36.                         .Paragraphs(1).Range.Font.Underline = wdUnderlineWavyHeavy '重波浪线
  37.                     End If
  38.                     .Start = .End
  39.                 End With
  40.             Loop
  41.         End With
  42.         .Paragraphs.First.Range.Delete
  43.     End With
  44. '''
  45. '经典代码_循环遍历段落法_ForEachNext
  46.     If MsgBox("是否删除红色/重波浪线段落?", 4 + 16) = vbNo Then End
  47.     Dim i As Paragraph
  48.     For Each i In ActiveDocument.Paragraphs
  49.         If i.Range.Font.Color = wdColorRed Then i.Range.Delete
  50.     Next
  51. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-8-6 12:54 | 显示全部楼层
相见是缘8 发表于 2019-8-6 08:50
老师好!如类似18楼提出的:“8.9元钱买的。99.9的含量。…”参与序号重排(就是在前面再加上序号)。如 ...

奇怪,无法跟帖。

TA的精华主题

TA的得分主题

发表于 2019-8-6 13:16 | 显示全部楼层
相见是缘 你好! 像“8.9元钱……”这种类型的题目,没法确定,我认为。如果程序认定是题目,编号后也要人工校对,只能说,这样的题目,出错了! 试卷题目必须人工校对后,再用程序自动编号就好了;没有校对,无法判断。

TA的精华主题

TA的得分主题

发表于 2019-8-6 14:07 | 显示全部楼层
本帖最后由 gbgbxgb 于 2019-8-7 08:24 编辑
相见是缘8 发表于 2019-8-6 08:50
老师好!如类似18楼提出的:“8.9元钱买的。99.9的含量。…”参与序号重排(就是在前面再加上序号)。如 ...

。。。。。。。。。。。。。。

试试附件代码。

附件.rar

13.21 KB, 下载次数: 9

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

本版积分规则

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

GMT+8, 2025-1-11 05:51 , Processed in 0.024776 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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