ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何让一个宏只从光标所处的位置往下、往上运行?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-23 07:41 | 显示全部楼层 |阅读模式
如下面这个宏:
1、只从光标所处的位置往下运行。
2、只从光标所处的位置往上运行。

Sub DDDC()
   ActiveDocument.Content.Find.Execute "[" & ChrW(8220) &ChrW(8221) & "](*)[" & ChrW(8220) & ChrW( _
            8221) &"]", , , 1, , , , , , ChrW(8220) & "\1" &ChrW(8221), 2
End Sub

请大家赐教!谢谢!

TA的精华主题

TA的得分主题

发表于 2018-5-23 08:47 | 显示全部楼层
定义一个Range,光标以上就是当前点到文章头,光标以下就是当前点到文章尾。 我说的你应该能理解吧?
你想做的是区域查找功能吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-23 11:44 | 显示全部楼层
ming0018 发表于 2018-5-23 08:47
定义一个Range,光标以上就是当前点到文章头,光标以下就是当前点到文章尾。 我说的你应该能理解吧?
你 ...

你好!
感谢回复!
1、2、是分开的二个:
也就是当光标点在文档的任一处,执行1、该代码从光标处往下运行。如执行2、该代码从光标处往上运行。
我对VBA还是个外行,可否请你给一下代码?谢谢!

TA的精华主题

TA的得分主题

发表于 2018-5-23 12:00 | 显示全部楼层
相见是缘8 发表于 2018-5-23 11:44
你好!
感谢回复!
1、2、是分开的二个:
  1. Sub findStr_SelectionToStart()
  2.     Dim myDoc As Document
  3.     Set myDoc = ActiveDocument
  4.     Dim myRng As Range
  5.     'If Len(Selection.Range) > 1 Then End
  6.     Set myRng = myDoc.Range(0, Selection.Range.Start)
  7.     With myRng.Find.Replacement
  8.         .Font.ColorIndex = wdBlue '找到的字体变色
  9.     End With
  10.     With myRng.Find
  11.         .MatchWildcards = True '通配查找
  12.         .Text = "[0-9]{1,}" '要找查的内容
  13.         .Execute Replace:=wdReplaceAll
  14.     End With
  15. End Sub

  16. Sub findStr_SelectionToEnd()
  17.     Dim myDoc As Document
  18.     Set myDoc = ActiveDocument
  19.     Dim myRng As Range
  20.     'If Len(Selection.Range) > 1 Then End
  21.     Set myRng = myDoc.Range(Selection.Range.End, myDoc.Content.End)
  22.     With myRng.Find.Replacement
  23.         .Font.ColorIndex = wdBlue '找到的字体变色
  24.     End With
  25.     With myRng.Find
  26.         .MatchWildcards = True '通配查找
  27.         .Text = "[0-9]{1,}" '要找查的内容
  28.         .Execute Replace:=wdReplaceAll
  29.     End With
  30. End Sub
复制代码


随便写了一下,有问题QQ问吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-23 14:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ming0018 发表于 2018-5-23 12:00
随便写了一下,有问题QQ问吧。

你好!
代码运行OK!虽还看不太懂,以满足了要求,谢谢你!还为以后拓展预留了空间,谢谢!

TA的精华主题

TA的得分主题

发表于 2018-5-23 15:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-23 23:29 | 显示全部楼层
相见,录制一个查找宏,其中,.forward=true 就是从光标处向后(文尾)查找;.forward=false 就是从光标处向前(文首)查找,其它不变。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-24 06:25 | 显示全部楼层
413191246se 发表于 2018-5-23 23:29
相见,录制一个查找宏,其中,.forward=true 就是从光标处向后(文尾)查找;.forward=false 就是从光标处 ...

大神好!
谢谢!这个前天也试过,可就是每次运行完后,总会有一个“是否继续”的询问框弹出,每次都要关闭它,这个较烦人。

TA的精华主题

TA的得分主题

发表于 2018-5-24 16:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
相见,在 查找宏 中,将属性设为        .Wrap = wdFindStop  再注意:事先将光标放到文首,就不会再问了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-25 06:25 | 显示全部楼层
413191246se 发表于 2018-5-24 16:47
相见,在 查找宏 中,将属性设为        .Wrap = wdFindStop  再注意:事先将光标放到文首,就不会再问了。 ...

啊!原来是这样,好的。感谢大神解惑!谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-19 18:38 , Processed in 0.044172 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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