糖果派对官方网站_可以赌钱的糖果游戏_手机版
bb电子糖果派对:用正则表达式替换WO瑞虎D段尾空格现身的不测现象

bb电子糖果派对:用正则表达式替换WO瑞虎D段尾空格现身的不测现象

作者:操作系统    来源:未知    发布时间:2020-01-21 22:07    浏览量:

bb电子糖果派对 1

            Call IsLastCharParagraph(rngTextRange, True)

问题提出:

请教各位大侠专家!用正则表达式替换段尾空格时,如果文字段落之后紧跟着表格,则被替换的文字所在段落会跑到表格中去,除此之外其他情况却是正常的。百思不得其解,烦请各位老师指点。Sub删除段尾空格()DimiAsParagraph,mt,oRangAsRange,n%,m%Setregx=CreateObject("vbscript.regexp")Withregx.Global=True:.IgnoreCase=False:.MultiLine=True.Pattern="s+(r)"'删除段落尾部的空格,如果没有r,将会将回车符一并作为空格处理了。ForEachiInActiveDocument.Paragraphs'在遍历各个段落ForEachmtIn.Execute(i.Range.Text)'遍历所匹配的各个文本m=mt.FirstIndex:n=mt.Length-1'查找的起始位置、长度SetoRang=ActiveDocument.Range(i.Range.Start+m,i.Range.Start+m+n)'定位查找到的文本在整个文章中的起始位置、终止位置i.Range.Text=.Replace(i.Range.Text,"$1")NextNextEndWithEndSub运行之前的文档运行之后的文档

               rngTextRange.Characters.Count - 1

03:工具→宏→录制新宏→确定→单击“停止”按钮

      InsertTextInRange = True

程序功能:

Debug.Print rngMainText.Text

  1. 插入题注的标签与编号间有一个空格,当标签是中文时需要用户手动删除

有关处理段落的更多信息

第一步:录制一个宏(主要为了创建NewMacros模块,以前录制过的请跳过此步)

Range 对象

bb电子糖果派对 2

您可以使用 Range 属性返回 Range 对象来表示文档中的每一个文档构成部分。例如,以下代码打印与 Main Text 和 Comments 文档构成部分相关的文本:

 其实这个程序的方法有点“末端治理”的意思了,最美好的情况是微软直接优化“插入题注”的源程序了,只能期待吧!

   Dim rngSample As Range

使用方法:

   Set rngSample = ActiveDocument.Content

将以上代码粘贴到打开的NewMacros模块中

许多 Word 对象具有可返回 Range 对象的 Range 属性。在您需要使用 Range 对象的属性和方法进行操作,而对象本身又不提供这些属性和方法的情况下,您可以使用对象的 Range 属性返回 Range 对象。例如,以下代码使用 Paragragh 对象的 Range 属性返回 Range 对象,从而设置文档第一个段落中文本的格式:

1. 程序是调用系统的“插入题注对话框”,以前怎么插题注现在还怎么用,学习成本与多余步骤

   ' 当文本最后存在段落标记时,是否将其删除。

第二步:ALT+F11(打开VBA对话框)

   End If

本文转自 Endlesswx的博客

http://blog.sina.com.cn/endlesswx123

End Enum

bb电子糖果派对,3. 编号数字与题注内容见添加一个空格,予以区分

      Debug.Print "范围现在包含 " & .Characters.Count _

打印出来就这样,到底是表格1,还是表格11,表格112呢?这时就需要用户前删空格,后添空格,选来选去反正我是感觉有点烦!

   ' rngRange 指定的 Range 对象中。它调用

程序代码:

bb电子糖果派对:用正则表达式替换WO瑞虎D段尾空格现身的不测现象。      & vbCrLf & "One Microsoft Way" & vbCrLf _

2. 标签后竟然不插入空格!

      .Text = strNewText

2. 中文与编号间空格删除,英文与编号见空格保留(见动态图中第3个Figure)

   .Font.Name = "Arial"

另,本人会为插入题注设置快捷键Alt+[,这个看个人喜好,设置方法参见另一博文:文本从PDF等粘贴到WORD中,智能删除多余的空格和回车中使用方法部分

            .InsertBefore strNewText

功能演示:

创建 Range 对象的典型方法为:声明一个 Range 类型的对象变量,然后用 Document 对象的 Range 方法或另一个对象(例如 Character、Word、Sentence 或 Selection 对象)的 Range 属性来实例化该变量。例如,以下代码创建了两个 Range 对象,均表示活动文档中的第二个句子。

当上述两条加到一起时,我插入标签为“表格”,名称为“12月消费清单”的题注就呈现下左图的丑样:

当您使用 Range 方法来指定文档的特定范围时,您必须使用此方法的 Start 参数指定这个范围开始的位置,使用 End 参数指定结束的位置。文档的第一个字符的字符位置为 0。最后一个字符的位置和文档的字符总数相等。您可以通过使用 Characters 集合的 Count 属性确定文档中的字符数。如前面的示例所示,您也可以使用 Bookmark、Selection 或 Range 对象的 Start 和 End 属性来指定 Range方法的 Start 和 End 参数。您可以将 Start 和 End 参数设置为同一个数字,这将创建一个不包含任何字符的范围。

10:单击WORD状态栏的录制宏按钮(或开发工具→录制宏)→确定→单击“停止”按钮

请注意,在范围中插入文本之前,使用了 IsLastCharParagraph 过程来删除最后一个段落的段落标记。以下示例使用 Chr$() 函数,以字符代码 13 表示段落标记。

bb电子糖果派对 3

Sub RangeExample()

临近毕业,想必小伙伴们都忙着修改论文吧,最近发现了一些不错的方法,可以帮助大家论文排版节省不少时间,希望对大家有所帮助,祝愿大家都顺利毕业,找到心仪的工作!

理解基本方法

第三步:用系统的插入题注即可

   ' 是段落标记,则返回 True;否则返回 False。

不得不说,Word在插入题注上从03到13一直没有针对中国用户优化。

   Dim strNewText As String

后话:

可以使用 Range 对象的 Text 属性来指定或确定该范围包含的文本。例如,以下代码首先显示了 Range 对象中的文本,然后更改文本并显示新文本,最后还原为原始文本。此示例说明了如何使用 Range 对象的 Range 属性将文本复制和粘贴到文档中并同时保持原段落结构不变。请注意在 strNewText 变量中包含段落标记 (vbCrLf) 的新文本如何替换在选定原段落时包含的段落标记。

bb电子糖果派对 4

         Optional rngRange As Word.Range, _

Sub InsertCaption()'修改系统插入“题注”命令

  '功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加一个空格;适用于:Word 2003 - 2013,不兼容WPS文字!

  '真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在!

  'Endlesswx于2015年8月4日

  '另,如果插入的始终未域代码而不是数字,非程序问题,Alt+F9一次即可

  Dim Lab As String, startPt As Long, endPt As Long, myrang As Range

  'On Error Resume Next'发生错误时让程序继续执行下一句代码

' Application.ScreenUpdating = False  '关闭屏幕更新,2013在此处关闭更新会导致输入框灰色不可选,故修正在调出对话框之后

  startPt = Selection.Start'startPt标注起始点

  '***将if条件隐藏隐藏即可实现----手动替换题注空格***

  If Application.Dialogs(357).Show = -1 Then '插入“题注”对话框秀出来,如果按确定结束时执行以下程序,避免按取消后的空格,357也可换成wdDialogInsertCaption

    Application.ScreenUpdating = False  '关闭屏幕更新

    Lab = Dialogs(357).label

    endPt = Selection.Start'endPt标记插入的题注部分终点

    Selection.Start = startPt'选定插入的整个题注

    '删除标签与编号间的空格(英文后的保留)

    With Selection.Find

      .Text = Lab & " "

      .Forward = True 'False=向上查找,(True=向下查找)

      .MatchWildcards = False '不使用通配符

      If Lab Like "*[0-9a-zA-Z.]" Then'此处判断标签的最后一个字符是否为英文或数字,是则不删除空格

      Else

        .Replacement.Text = Lab

        .Execute Replace:=wdReplaceOne'替换找到的第一个,此处用作删除空格

        endPt = endPt - 1 '删除空格后,末位减1

        Selection.End = endPt

      End If

    End With

    '在题注数字后添加一个空格

    Selection.Fields.ToggleShowCodes '切换域代码,这样才能用^d查找域

    With Selection.Find

      .Text = "^d"

      .Replacement.Text = "^& "

      .Forward = False 'False=向上查找,(True=向下查找)

      .MatchWildcards = False '不使用通配符

      .Execute Replace:=wdReplaceOne'替换找到的第一个,此处用作添加空格

    End With

    '选定整个插入的题注内容,将域代码切换回来

    endPt = endPt + 1 '增加空格后,末位加1

    With Selection

      .Start = startPt

      .End = endPt

      .Fields.ToggleShowCodes '切换域代码(切换回来)

    End With

    '将光标定位至题注所在段尾处

'   Selection.MoveRight Unit:=wdCharacter, Count:=1'此句光标返回插入题注前的原始位置,对于已经输好标题的情况并不合适

    '选择段尾回车符

    With Selection.Find

      .Text = "^13"

      .Forward = True 'False=向上查找,(True=向下查找)

      .MatchWildcards = False'不使用通配符

      .Wrap = wdFindContinue '继续查找

      .Execute

    End With

    Selection.MoveLeft Unit:=wdCharacter, Count:=1'定位到段尾回车前

  End If

  Application.ScreenUpdating = True     '恢复屏幕更新

End Sub

         Case 2 ' 替换范围中的文本。

其实程序还支持插入时不填内容、在文档中输好的内容前插入等等,自行体验吧。

   strNewText = "This text is replacing the original" _

    Before

    Replace

Set rngPara = ActiveDocument.Paragraphs(1).Range

      "Any Town, USA 12345"

Dim docOne As Word.Document

   ' 本过程接受字符、单词、句子或段落 Range 

    After

以下示例先用 ContentRagne 对象,该对象包含了文档的所有内容。接着,改变 EndSetRange 方法重新定义范围,使之包含文档的第一个段落。最后,使用 MoveEnd 方法将范围的结束位置扩展至文档的第二个段落末尾。此示例中的每一步都将当前范围中包含的字符的数量打印到“立即窗口”。

每个空白的 Word 文档仅有一个段落标记,其中同时包含 Character 对象、Word 对象、Sentence 对象和 Paragragh 对象各一个。但是,“属性”对话框(“文件”菜单)中的“统计信息”选项卡将报告空白文档中没有字符、单词、句子和段落。这种差异突出显示了 Word 的一个重要侧面,当编程操作这些对象时,您需要特别注意这一点。

With ActiveDocument

With ActiveDocument

      & " Text property of the Range object!" & vbCrLf

            rngTextRange.SetRange rngTextRange.Start, _

Set rngComments = ActiveDocument.StoryRanges(wdCommentsStory)

End Sub

新 Word 文档只包含一个文档构成部分,称为“Main Text”,表示文档主体部分的文本。即使一个空白文档也包含字符、单词、句子和段落各一个。

      End Select

当您创建表示 Character、Word 或 Sentence 对象的 Range 对象,并且该对象位于段落的结束位置时,段落标记自动包含在范围之内。而且,Range 对象将包含后续的空段落标记。例如,在一个由两个段落组成的文档中,假设其中第一个段落包含三个句子,而第二个段落为空,那么以下代码创建的 Range 对象表示第一段中的最后一个句子:

      Set rngRangeProperty = .Sentences(2)

End With

Set docTwo = Documents("Policies.doc")

您可以使用对象的 SetRange 方法设置或重新定义 Range 对象的内容。您也可以通过使用 Range 对象的 Start 属性或 MoveStart 方法指定或重新定义范围开始的位置。同样地,您也可以通过使用 Range 对象的 End 属性或它的 MoveEnd 方法指定或重新定义范围结束的位置。

   ' 本过程还接受一个 Boolean 参数,用于指定

在前面讨论过的 ChangeTextSample 过程中,请注意 strNewText 变量中的文本如何使用 vbCrLf 内置常量在文本的结束处创建段落标记,从而替换活动文档的第 1 段中的现有文本。这样做是为了避免新文档成为第二个段落的一部分。

      Else

定义 Range 对象后,您可以应用此对象的方法和属性修改所指定范围的内容或获取有关信息。例如,您可以使用 Range 对象的 StoryType 属性来确定 Range 在文档中的位置。

Range 对象表示文档中的一个连续范围,由一个起始字符位置和一个终止字符位置定义。这个连续范围可以小到一个插入点,大到整个文档。它也可能是(而非必须是)由当前节表示的范围。您也可以定义一个 Range 对象,表示和当前节不同的范围。也可以在同一个文档中定义多个 Range 对象。Range 对象中的字符包含非打印字符,例如,空格、回车符和段落标记。

   With rngRange

Dim rngRangeMethod As Word.Range

   .ClearFormatting

理解 Word 的段落标记

Set docOne = Documents(1)

友情链接: 网站地图
Copyright © 2015-2019 http://www.tk-web.com. bb电子糖果派对有限公司 版权所有