ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 替换法移动答案至括号中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-5-9 11:52 | 显示全部楼层
本帖最后由 duquancai 于 2017-5-9 11:54 编辑
小花鹿 发表于 2017-5-9 10:49
我也练习一下:
Sub test()
Dim st, en

Sub test()
    Dim st, en
    With ThisDocument.Range.Find
        Do While .Execute("[0-9]{1,}*【答案】*^13", , , 1)
            With .Parent
                .Collapse
                .MoveUntil Chr(13)
                .MoveUntil "((", wdBackward
                .MoveEndUntil "))"
                st = .Start: en = .End
                .Collapse 0
                .MoveUntil "【"
                .MoveUntil Chr(13)
                .MoveStartUntil "】", wdBackward
                ThisDocument.Range(st, en).FormattedText = .FormattedText
                .Expand 4
                .Text = Empty
            End With
        Loop
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2017-5-9 12:15 | 显示全部楼层
duquancai 发表于 2017-5-9 11:52
Sub test()
    Dim st, en
    With ThisDocument.Range.Find

不知道有.Expand 这么个玩意

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-9 16:34 | 显示全部楼层
本帖最后由 weiyingde 于 2017-5-9 17:13 编辑

各位大显身手,老朽一睹大侠们风采,这热闹的劲儿,很好,一并学习了!!
只可惜word VBA基础及其薄弱,要读懂,得要花费一些时日,只怕下次还会问些雷同或大致相同的问题,
还望各位仍不吝赐教。
杜老师的word的运用水平真是炉火纯青:每每一个问题,在您在手,“唰唰”迎刃而解——思路开阔,手法灵活,使人感受到条条道路通罗马,不怕做不到,就怕想不到。使人觉得,看高手解决问题,原来也是一种享受!!
小花鹿大侠和jiminyanyan 大侠,手段非凡,驰骋于office领域的每块原地,南征北战,使人感受到:一通百通!!
再次虔诚地受教于三位大侠!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-9 16:50 | 显示全部楼层
本帖最后由 weiyingde 于 2017-5-9 17:16 编辑
jiminyanyan 发表于 2017-5-8 23:07
杜老师已经写了,您可以试着注释一下,注释代码也是一个学习与提高的过程。


谢谢提醒,会的,把大家的代码收集在一起看看,比较一下,竭力领悟其中的奥妙……
然而,每当回顾VBA 两年的学习历程,却越来越发现,爱VBA的我,原不是学VBA的那块料!!两年的收获仅仅只落下“爱好”二字……VBA的水平还是停留在“菜菜”的层面上,人家写好的代码,一时半会还不能领略其中的奥妙,模仿还是后话,创造目前还是“水月镜花”,想想杜老师的话,真是汗颜!!

TA的精华主题

TA的得分主题

发表于 2017-5-10 11:00 | 显示全部楼层
本帖最后由 kqbt 于 2017-5-10 11:02 编辑

查找和替换
查找内容:
  1. ([\))]^13)(*)【答案】([A-F]@)^13
复制代码


替 换 为:
  1. \3\1\2
复制代码



√ 使用通配符 → 全部替换

有部分题目因为题干最后的括号与回车之间有半角空格,所以匹配不到。建议通过 Ctrl + a → Crtl + e → Ctrl + L 来将其批量清除掉,然后再执行替换操作。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-10 20:36 | 显示全部楼层
kqbt 发表于 2017-5-10 11:00
查找和替换
查找内容:

解释到位,很好哦,谢谢!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-11 09:20 | 显示全部楼层
本帖最后由 weiyingde 于 2017-5-11 09:35 编辑
kqbt 发表于 2017-5-10 11:00
查找和替换
查找内容:


测试了,简写一下,很好用,再次感谢kqbt 版主
Sub 移动答案最简版()
With ActiveDocument.Content.Find
      .Execute "[  ]@", , , 1, , , , , , "", 2
      .Execute "([\))]^13)(*)【答案】([A-F]@)^13", , , 1, , , , , , "\3\1\2", 2
End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-11 10:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jiminyanyan 发表于 2017-5-8 21:00
把答案那一行去掉,应难不住你,我还是写一下吧…………
Sub 宏1()
'

Sub 删除答案所在行() 'jiminyanyan代码,duquancai 式缩写
    Selection.Find.Execute "【答案】[!^13]@^13", , , 1, , , 1, 1, , "", 2
End Sub

TA的精华主题

TA的得分主题

发表于 2017-5-13 13:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢各位的分享,收藏学习ing……

TA的精华主题

TA的得分主题

发表于 2018-1-30 09:38 | 显示全部楼层
请教,“\3\1\2"替换时,”【答案】"为什么会被替换掉?我的理解是只会替换第三个捕获,即只会替换掉参考答案的那个大写字母。您解决这个问题是进行了深思熟虑和反复试验,特向您请教!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 07:40 , Processed in 0.023399 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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