word如何将上标“[1]”“[2]”......全部改为“〔1〕”之类的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word如何将上标“[1]”“[2]”......全部改为“〔1〕”之类的?相关的知识,希望对你有一定的参考价值。

就像图1变为图2那样,不知道怎么用查找替换功能,就是只变括号,不变里面的数字,能做到吗?恳请大佬解答,谢谢!

很简单,查找替换就行了:

注意勾选【使用通配符】。在查找框输入【(\\[)([0-9]@)(\\])】,并且查找格式设置为【上标】(我截图忘记设置了),否则会把正文中的方括号也给替换了:

在替换框,输入【〔\\2〕】。

解释下代码:

因为在Word中,【[]】是保留字符,所以要替换【[]】时必须用【\\】来进行转义。

而【()】小括号括起来的表示这是一个独立的表达式。

【@】表示前一个字符重复一次或多次。

替换框的【\\2】表示返回查找框里的第二个表达式,也就是数字。

参考技术A 用替换功能,先全部替换左边的括号,再全部替换右边的括号,这样就不会改变数字了。

Word VBA:转换页脚/页眉中的上标

【中文标题】Word VBA:转换页脚/页眉中的上标【英文标题】:Word VBA: Convert Superscripts in Footers/Headers 【发布时间】:2017-08-01 09:40:57 【问题描述】:

我正在使用这样的代码将每个部分的所有页眉/页脚输出到文本文件: Word VBA - getting text file output to look right

我已经能够使用 Replace() 毫无问题地转换 sHeader/sFooter 字符串变量中的所有特殊字符。

例如:sFooter = Replace(sFooter, ChrW(8804), "^R'\ \uc2\u8804 <='")

在我尝试替换上标之前,一切都很好。 Alt+x 只给了我字母本身的值。我试过查找十六进制值(甚至可能不是一件事)但没有成功。我什至尝试过不同的拉丁字符值。

我录制了一个宏,看看 Word 将如何替换它并得到:

    Selection.Find.ClearFormatting
With Selection.Find.Font
    .Superscript = True
    .Subscript = False
End With

Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "A"
    .Replacement.Text = "^supera"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

问题是我不知道如何一起使用它们。 我尝试使用oSec.Footers(wdHeaderFooterFirstPage).Range.Find... 而不是Selection.Find...,但这会产生一个空字符串。

我可以从 sHeader/sFooter 以某种方式创建一个 String 对象,以便我可以使用记录的宏代码吗?我尝试谷歌搜索,将字符串转换为对象,但没有得到任何帮助。有更好的方法吗?

提前致谢。

【问题讨论】:

【参考方案1】:

我知道这并不能完全回答您的问题,但问题是无论是否上标,字符都是相同的,即上标是格式化的,就像粗体或斜体一样。

例如,粗体 A、普通 A 和上标 A 的代码均为 65。

如果您要保存到文本文件,您将无法保存格式,因此您需要发明自己的上标字符表示。

查找/替换代码的表示形式,即“^supera”是 Word 用来允许您对具有特定格式的文本进行查找/替换的方法。

注意:有一些特殊字符,例如 ²,与 2 有一个单独的字符代码,因此它们会有不同的代码。

【讨论】:

【参考方案2】:

感谢 M1chael 的意见。

通过将选择设置为当前页眉/页脚部分,我能够让上面录制的宏工作。

例子:

oSec.Footers(wdHeaderFooterPrimary).Range.Select
Selection = ActiveDocument.ActiveWindow.Selection

谢谢

【讨论】:

以上是关于word如何将上标“[1]”“[2]”......全部改为“〔1〕”之类的?的主要内容,如果未能解决你的问题,请参考以下文章

怎么在MATLAB中输入一个既有上标又有下标的字符

如何在MATLAB中输入上标、下标?

word里怎么把数字序号标在文字的右上角?

word里怎么把数字序号标在文字的右上角?

如何快速将word公式中的上下标变为正体,其它的任然保持斜体。在线等待!!

word里怎么把数字序号标在文字的右上角?