为什么我的word2007中双引号是斜的?

大哥大姐们,请讲解下,为什么我的word2007中双引号是斜的?
最新回答
胡一菲闪舌头

2024-04-13 14:41:00

如果取消了“直引号替换为弯引号”前面的勾仍然出错,那大概就是字体问题了。

这个页面看到的雅黑字体就是这样,看起来都是差不多的斜双杠。其实放大了看还是有区别的,前引号上小下大,后引号上大下小。

给你一段 word 宏代码,不考虑“直引号替换为弯引号”前面的勾是否取消。可以用在不太长的文档中,自动处理全文单双引号,跨段的双引号也能正确处理。

注意:本段代码中,英文单引号是不处理的,单引号跨段也不处理。如果是处理太长的文档会比较卡,需要另写代码,只在框选区域内执行。

此外,把代码粘贴到宏编辑器中时,系统可能会把单引号部分的中文单引号换成英文单引号,导致单引号处理出错,需要在编辑器中手动修改几处单引号。在编辑器里代码中有淡绿色文本提示,提示文本可以删除。

 

Sub 引号()

    Application.ScreenUpdating = False

    Selection.WholeStory

    With ActiveDocument.Content.Find

        .Execute FindText:="‘", replacewith:="’", Replace:=wdReplaceAll

        .Execute FindText:=ChrW(8221), replacewith:=ChrW(8220), Replace:=wdReplaceAll' 本行FindText:="‘"中的单引号换成中文前单引号,replacewith:="’"中的单引号换成中文后单引号

    End With

      Dim P&

    With Selection

        P = .Paragraphs.Count

    End With

    Text = ChrW(8220)

        With ActiveDocument.Content.Find

          Do While .Execute(FindText:=Text) = True

          Y = Y + 1

          Loop

        End With

    With Selection.Find

        .Text = "’(*)’"'两处都换成中文后单引号

        .Replacement.Text = "‘\1’"'配对中文单引号

        .MatchWildcards = True

    End With

    Selection.Find.Execute Replace:=wdReplaceAll

    Selection.HomeKey unit:=wdStory

    For N = 1 To P

    Selection.Expand wdParagraph

    With Selection.Find

        .Text = ChrW(8220) & "(*)" & ChrW(8220)

        .Replacement.Text = ChrW(8220) & "\1" & ChrW(8221)

    End With

    Selection.Find.Execute Replace:=wdReplaceAll,Wrap:=wdFindStop

    Selection.MoveDown unit:=wdParagraph

    Next N

    Selection.HomeKey unit:=wdStory

    For S = 1 To Y

    With Selection.Find

        .Text = "[" & ChrW(8220) & ChrW(8221) & "]"

        .Replacement.Text = "^&"

        .Forward = True

        .MatchWildcards = True

    End With

    Selection.Find.Execute

    Selection.Range.CharacterWidth = wdWidthFullWidth

    Next S

    Selection.HomeKey unit:=wdStory

End Sub