Phil遵循的样式指南规定,当指示数字范围(例如1-9或23-36)时,应使用短划线而不是连字符。菲尔想知道是否有一种方法可以强制Word自动执行此操作。

您可以通过两种方式将破折号放在数字范围之间。 “自动”方式(就Word而言)是用空格包围连字符。换句话说,假设您的范围约为23至45。您所要做的就是键入23,空格,连字符,空格,然后键入45。在“ 45”之后键入空格或标点符号的那一刻,连字符会自动转换为短划线。

使用此方法虽然方便,但在破折号之前和之后留有空格,这可能会违反您的样式指南。如果是这样,您始终可以使用“查找和替换”来消除破折号前后的任何空格。或者,您可以简单地绕过自动方法,学习键入自己的破折号。最简单的方法是简单地按Ctrl,然后按数字键盘上的减号键。 (必须在数字小键盘上。)Word插入行破折号。

您还可以使用Word的“查找和替换”工具将所有连字符更改为破折号。方法如下:

。按Ctrl + H。 Word将显示“查找和替换”对话框的“替换”选项卡。

。单击更多按钮(如果有)。 (请参见图1。)

。确保选中“使用通配符”复选框。

。在“查找内容”框中输入以下内容:([0-9])-([0-9])。在“替换为”框中输入以下内容:\ 1 ^ = \ 2。单击全部替换。

这些步骤将任何数字替换为连字符,然后将另一个数字替换为原始数字,然后是一个破折号和一个原始数字。不幸的是,如果连字符前面或后面有空格,它将不会执行替换。如果您的文字中包含此类错误的空格,则需要先消除它们,然后上述内容才能正常运行。

或者,您可以使用一个宏,它将为您完成“查找和替换”的所有排列。下面的宏实际上调用查找和替换七次,其结果是,包含连字符或破折号的任何排列(由单个空格包围)的任何范围都将转换为单个破折号周围的数字。

Sub FixNumberRanges()

Selection.Find.ClearFormatting     Selection.Find.Replacement.ClearFormatting     With Selection.Find         .Text = "([0-9])-([0-9])"

.Replacement.Text = "\1^=\2"

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False

.Execute Replace:=wdReplaceAll

.Text = "([0-9]) -([0-9])"

.Execute Replace:=wdReplaceAll

.Text = "([0-9])- ([0-9])"

.Execute Replace:=wdReplaceAll

.Text = "([0-9]) - ([0-9])"

.Execute Replace:=wdReplaceAll

.Text = "([0-9]) ^=([0-9])"

.Execute Replace:=wdReplaceAll

.Text = "([0-9])^= ([0-9])"

.Execute Replace:=wdReplaceAll

.Text = "([0-9]) ^= ([0-9])"

.Execute Replace:=wdReplaceAll     End With End Sub

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(5133)适用于Microsoft Word 2007、2010、2013和2016。