艾伦(Allen)是一位加拿大Excel用户,经常从欧洲来源下载大量统计数据,因此会遇到通常的问题,即小数和千位分隔符被颠倒。这需要一些花哨的操纵才能转变为北美风格,并经常导致错误。艾伦可以更改整个系统的设置,但是随后他的北美号码(在其他工作簿中)被搞砸了。他想知道是否有某种方式可以一次只更改一个文件。

数字的显示方式取决于Windows中维护的“区域设置”。如果更改“区域设置”,则Excel将采用这些设置并以不同的方式显示信息。因此,例如,如果我在美国这里创建工作簿,并且有人在使用不同“区域设置”的位置打开该工作簿,那么他们将根据他们的“区域设置”而不是“美国”设置查看我的电话号码状态。

如果这没有发生,则可能是创建工作簿的人员将Excel配置为忽略“区域设置”。您可以通过以下方式进行:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)

。在对话框的左侧,单击“高级”。

。向下滚动,直到看到“编辑选项”部分。 (请参见图1。)

(您不必滚动远;此部分是对话框此部分中的第一部分。)

请注意“使用系统分隔符”复选框的设置。如果选中此复选框(默认情况下为默认),则Excel将使用Windows的“区域设置”区域中维护的设置。如果清除此复选框,则Excel将使用在“十进制分隔符”和“千位分隔符”框中指定的任何字符。

如果要在每个工作簿的基础上修改分隔符(就像艾伦显然想做的那样),那么最简单的方法是使用宏。

例如,以下事件处理程序宏(包含在ThisWorkbook模块中)将在您使工作簿处于活动状态时更改这些设置。

Private Sub Workbook_Activate()

Application.DecimalSeparator = ","

Application.ThousandsSeparator = "."

Application.UseSystemSeparators = False End Sub
Private Sub Workbook_Deactivate()

Application.UseSystemSeparators = True End Sub

请注意,宏会更改小数和千位分隔符,然后清除“使用系统分隔符”设置。离开工作簿时(当另一个工作簿获得焦点时),则再次设置“使用系统分隔符”设置。

如果您希望即时而不是自动更改信息,则可以使用此快速小宏。将其分配给快速访问工具栏时,可以单击它以在两组不同的分隔符值之间切换。

Sub ToggleSep()

Dim bCurrent As Boolean

bCurrent = Application.UseSystemSeparators     If bCurrent Then         Application.DecimalSeparator = ","

Application.ThousandsSeparator = "."

Application.UseSystemSeparators = False     Else         Application.UseSystemSeparators = True         MsgBox "Now Using System Separators"

End If End Sub

当宏“返回”使用Windows定义的系统分隔符的默认值时,该宏将显示一条消息。

您应该注意,本技巧文章中讨论的所有内容均假定任何包含数字的单元格均未采用某些自定义格式进行格式化,该自定义格式会覆盖Excel如何使用分隔符。任何自定义格式始终优先。因此,如果在调整Excel所使用的分隔符后没有看到任何变化,那么您将需要检查一下实际单元格的格式。

注意:

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

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(13453)适用于Microsoft Excel 2007、2010、2013和2016。