ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]如何搜索并修改包含通配符的关键字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-3-6 14:44 | 显示全部楼层

刚才再看4楼代码,发现后面的.SetRange .End, ThisDocument.Content.End没相应改为.SetRange .End, ActiveDocument.Content.End。看看是不是这个原因。


TA的精华主题

TA的得分主题

发表于 2008-3-7 06:55 | 显示全部楼层

一起分享一下正则表达式的简便吧!

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-3-7 6:54:15
'仅测试于System: Windows NT Word: 11.0 Language: 2052
'№ 0352^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------
Option Explicit '显示变量声明
Option Compare Text '不区分大小写
Dim RegExp_ReplaceCount As Long
Sub myReplace()
'运行本过程前需在VBE/工具/引用中勾选"Microsoft Forms 2.0 Object Library"
    Dim myDataObject As New DataObject, myDoc As Document
    Dim mySourceString As String, sinStart As Single, sinEnd As Single
    sinStart = Timer
    With ActiveDocument
        .Content.Cut    '剪切
        .UndoClear    '清空撤消(由于文档太大,应注重这方面的考虑,节约内存,加速运行)
        myDataObject.GetFromClipboard    '将剪贴板数据传递到DataObject
        mySourceString = myDataObject.GetText(1)    '取得无格式文本
        Set myDataObject = Nothing    '释放对象变量
        .Content.Text = VBS_Replace(mySourceString, "(MatchPercent=""100"".*?Font.*?>)", "$1▼")
        sinEnd = Timer
        MsgBox "Word历时" & sinEnd - sinStart & "秒,执行了" & _
               RegExp_ReplaceCount & "次查找和替换!", vbInformation, "Microsoft VBScript"
    End With
End Sub
'----------------------
Function VBS_Replace(strSource As String, strFindText As String, strRepText As String) As String
'请在VBE中引用 Microsoft VBScript Regular Expressions 5.5
'本程序适用于取得匹配查找内容的数量或者无格式复杂替换
    Dim myRegEx As New VBScript_RegExp_55.RegExp    '定义一个新的正则表达式对象
    Dim Matches As Object
    myRegEx.IgnoreCase = True    ' 不区分大小写
    myRegEx.Global = True    ' 搜索全部
    myRegEx.Pattern = strFindText    '设置模式表达式
    Set Matches = myRegEx.Execute(strSource)
    RegExp_ReplaceCount = Matches.Count    '返回匹配查找内容的数量
    VBS_Replace = myRegEx.Replace(strSource, strRepText)
End Function
'----------------------

Nt30ysFF.rar (15.39 KB, 下载次数: 103)
[此贴子已经被作者于2008-3-7 6:56:32编辑过]

TA的精华主题

TA的得分主题

发表于 2008-3-7 09:34 | 显示全部楼层

怪,为何我在引用库列表里找不到"Microsoft Forms 2.0 Object Library"?运行环境:Word2003,winXP sp2

TA的精华主题

TA的得分主题

发表于 2008-3-7 11:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用sylun在2008-3-7 9:34:29的发言:

怪,为何我在引用库列表里找不到"Microsoft Forms 2.0 Object Library"?运行环境:Word2003,winXP sp2

参考:

http://club.excelhome.net/viewthread.php?tid=296584&replyID=&skin=0

TA的精华主题

TA的得分主题

发表于 2008-3-7 13:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢老大指点。插入用户窗体后确实就出现Microsoft Forms 2.0 Object Library并自动引用了,但不经过插入步骤的话还是看不到它,这是正常现象吗?我用的是完全安装。
[此贴子已经被作者于2008-3-7 13:03:44编辑过]

TA的精华主题

TA的得分主题

发表于 2008-3-8 07:31 | 显示全部楼层
QUOTE:
以下是引用sylun在2008-3-7 13:01:48的发言:
谢谢老大指点。插入用户窗体后确实就出现Microsoft Forms 2.0 Object Library并自动引用了,但不经过插入步骤的话还是看不到它,这是正常现象吗?我用的是完全安装。

都一样的.

如果没有,可以定位到SYSTEM32下,找到FM20.DLL库.

SYSTEM32下有许多DLL文件,在引用对话框中并未全部列出来,我想也许MS有它的考虑吧.

反正知道使用插入窗体后移除窗体即可自动引用MS FM2.0即可[em04]


[求助]如何搜索并修改包含通配符的关键字

[求助]如何搜索并修改包含通配符的关键字

TA的精华主题

TA的得分主题

发表于 2008-3-8 10:41 | 显示全部楼层

原来如此,谢谢老大详细解释!

TA的精华主题

TA的得分主题

发表于 2009-4-20 16:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收藏!以备他日学习!谢谢守版和sylun兄!

TA的精华主题

TA的得分主题

发表于 2015-6-12 19:05 | 显示全部楼层
mytext = VBA.InputBox("请输入查找代码", , "MatchPercent=""100""*Font*\>")
With myrange.Find
    Do While .Execute(findtext:=mytext, MatchWildcards:=True)
        With .Parent
            myrange.InsertAfter "▼"
            n = n + 1
            .SetRange .End, ThisDocument.Content.End
        End With
    Loop
End With
MsgBox "共找到" & n & "个匹配项。"
End Sub

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

本版积分规则

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

GMT+8, 2024-11-24 02:35 , Processed in 0.034926 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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