ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 正则无果:删除段首多余空格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-3-19 11:01 | 显示全部楼层 |阅读模式
Sub 删除段首多余空格() '由空格键生成的多余空格
Dim regx, S$, Strnew$
Set regx = CreateObject("vbscript.regexp")
   For Each i In ActiveDocument.Paragraphs
   S = i.Range.Text
   regx.Pattern = "^\s+"
   regx.Global = True
Strnew = regx.Replace(S, "")
Next
End Sub

TA的精华主题

TA的得分主题

发表于 2017-3-19 11:44 | 显示全部楼层
Sub wdTrimParagraph()
Dim rng As Range
Dim txt$
Set rng = ActiveDocument.Content
With rng.Find
    .MatchWildcards = True
    .Text = "(^13)[ ]@(*^13)"
    Do While .Execute
        Set rng = .Parent
        rng.MoveStart wdCharacter, 1
        rng.MoveEnd wdCharacter, -1
        txt = rng.Text
        txt = VBA.Trim$(txt)
        rng.Text = txt
        rng.SetRange rng.End, rng.End
    Loop
End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-3-19 11:47 | 显示全部楼层
Sub shishi()
    ActiveDocument.Content.Find.Execute "^13^32{1,}", , , 1, , , , , , "^p", 2
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-19 11:59 | 显示全部楼层
duquancai 发表于 2017-3-19 11:47
Sub shishi()
    ActiveDocument.Content.Find.Execute "^13^32{1,}", , , 1, , , , , , "^p", 2
End Su ...

好简洁。
大侠好多过程中都用这种模式的表达式,我不懂特别是: "^13^32{1,}", , , 1, , , , , , "^p", 2
红字部分中的逗号及其中的数字,表达的含义是什么。
能给我启蒙吗?

TA的精华主题

TA的得分主题

发表于 2017-3-19 14:58 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-19 15:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 weiyingde 于 2017-3-19 15:38 编辑
jiminyanyan 发表于 2017-3-19 14:58
能上传个附件么………………


这是duquancai 给我的代码,很好,但我红字的本部分不懂,请解释一下。
Sub W_移形换位()
    Dim reg As Object, mt, mh, oDOC As Document
    Set oDOC = ActiveDocument
    With oDOC.Content.Find
        .Execute "([\((])^32{1,}", , , 1, , , , , , "\1", 2        
        .Execute "^32{1,}([\))])", , , 1, , , , , , "\1", 2
        .Execute "^32{1,}", , , 1, , , , , , "^32", 2
   End With
    Set reg = CreateObject("vbscript.regexp")
    reg.Global = True: reg.Pattern = "[\((][^)\)]+[\))]"
    For Each mt In reg.Execute(oDOC.Content)
        m = mt.FirstIndex: n = mt.Length
        With oDOC.Range(m, m + n)
            reg.Pattern = " ": t = reg.Execute(.Text).Count + 1
            .Start = .Start - t
            .Find.Execute "([一-﨩]{" & t & "})([\((])(*)([\))])", , , 1, , , , , , "\3\2\1\4", 1            
            reg.Pattern = "[\((][^)\)]+[\))]"
            For Each mh In reg.Execute(.Text)
                f = mh.FirstIndex: l = mh.Length
                With oDOC.Range(.Start + f, .Start + f + l)
                    .Start = .Start + 1: .End = .End - 1
                    .Font.Color = RGB(255, 255, 255)
                End With
            Next
        End With
    Next
End Sub

代码如下

正则资料整理.zip

22.79 KB, 下载次数: 14

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-19 15:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 weiyingde 于 2017-3-19 15:45 编辑
jiminyanyan 发表于 2017-3-19 14:58
能上传个附件么………………


4楼的附件如下:
问题已经解决,解释一下代码。
Sub shishi()
    ActiveDocument.Content.Find.Execute "^13^32{1,}", , , 1, , , , , , "^p", 2
End Sub

正则无果:删除段首多余空格.zip

19.51 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2017-3-19 17:38 | 显示全部楼层
等价于
Sub shishi()
    ActiveDocument.Content.Find.Execute FindText:="^13^32{1,}", MatchWildcards:=True, ReplaceWith:="^p", Replace:=wdReplaceAll
End Sub

TA的精华主题

TA的得分主题

发表于 2017-3-19 17:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
也等价于
Sub shishi()
With ActiveDocument.Content.Find
    .Text = "^13^32{1,}"
    .MatchWildcards = True
    .Replacement.Text = "^p"
    .Execute Replace:=wdReplaceAll
End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-19 18:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
loquat 发表于 2017-3-19 17:39
也等价于
Sub shishi()
With ActiveDocument.Content.Find

能否完整列举findtext参数?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 07:35 , Processed in 0.031281 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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