Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba WORD-通过引号中的文本查找和替换文本_Vba_Ms Word - Fatal编程技术网

Vba WORD-通过引号中的文本查找和替换文本

Vba WORD-通过引号中的文本查找和替换文本,vba,ms-word,Vba,Ms Word,如何查找和修剪引号文本之间的空格 例如:如果单词包含以下字符串: 我对他说‘我为什么要这样做?’他回答…… 它将取代: 我问他‘我为什么要?’他回答…… 我知道在引号中查找文本的正则表达式是:(\“*?\”),但从这里我无法继续 任何帮助都将不胜感激 Asi对于VBA解决方案,请尝试: Sub Demo() Dim Rng As Range, Rslt With ActiveDocument.Range With .Find .ClearFormatting .Replace

如何查找和修剪引号文本之间的空格

例如:如果单词包含以下字符串: 我对他说‘我为什么要这样做?’他回答…… 它将取代: 我问他‘我为什么要?’他回答……

我知道在引号中查找文本的正则表达式是:(\“*?\”),但从这里我无法继续

任何帮助都将不胜感激
Asi对于VBA解决方案,请尝试:

Sub Demo()
Dim Rng As Range, Rslt
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "[‘'][!^13^l^t]@['’]"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchWildcards = True
    .Execute
  End With
  Do While .Find.Found
    .Select
    Set Rng = .Duplicate
    With Rng
      .Start = .Start + 1
      .End = .End - 1
      If .Text <> Trim(.Text) Then
        Rslt = MsgBox("Trim this instance?", vbYesNoCancel)
        If Rslt = vbCancel Then Exit Sub
        If Rslt = vbYes Then
          Do While .Characters.Last = " "
            .Characters.Last = vbNullString
          Loop
          Do While .Characters.First = " "
            .Characters.First = vbNullString
          Loop
        End If
      End If
    End With
    .Collapse wdCollapseEnd
    .Find.Execute
  Loop
End With
End Sub
致:

要仅使用选定范围,请更改:

Dim Rng As Range, Rslt
With ActiveDocument.Range
致:

并插入:

    If .InRange(RngSel) = False Then Exit Sub
之前:

    .Select

我看到你标记了三种语言。你能告诉我们你对每种语言的代码都做了多少吗?另外:你更喜欢使用哪种语言?FWIW不要试图在Word中使用正则表达式;使用Word内置的查找功能和通配符。它们类似于正则表达式,但不完全相同。此外,根据堆栈溢出准则,此问题的范围“太广”(请参阅)。每个问题应该只有一个问题主题——你至少要问两个。请使用链接添加您尝试过的不起作用的代码-堆栈溢出不是免费的编码服务…请确保您正确标记了内容,我已编辑了您的问题以删除vb.net和vbscript,因为它们不正确。您还需要发布到目前为止所做工作的副本,Stack Overflow不是一个代码编写血汗工厂,它是一个用于学习和构建的信息库。我们不会为您编写代码,我们会教您如何自己修复代码,以便下次更好地武装您。谢谢!我可以问一下,如果我希望它只对选择文本起作用,我应该怎么做?(而不是在整个文档上)@AsiB请参见编辑后的答案。注意:如果您从一开始就说明了您的全部要求,这将是很有帮助的。
Dim Rng As Range, RngSel As Range, Rslt
With Selection.Range
  Set RngSel = .Duplicate
    If .InRange(RngSel) = False Then Exit Sub
    .Select