乔治有一个工作簿,他需要使用拉丁美洲货币格式提交信息,例如238.769,76。缺少更改全局设置的方法,George无法提出解决方案。他想知道是否有办法仅更改单个工作簿的货币格式。

微软在技术上将乔治所说的“全局设置”称为“区域设置”。实际上,这些是直接由Windows处理的,因此任何更改都会影响Windows中运行的所有程序,包括Excel。

有一种方法可以通过使用VBA宏来临时更改设置。如果将此宏与特定工作簿的开始和结束联系在一起,则可能会充分满足您的需求。以下是宏:

Dim oldDecimalSep As String Dim oldThousandsSep As String   Private Sub Workbook_Open()

oldDecimalSep = Application.International(xlDecimalSeparator)

oldThousandsSep = Application.International(xlThousandsSeparator)

Application.DecimalSeparator = ","

Application.ThousandsSeparator = "."

Application.UseSystemSeparators = False End Sub
Private Sub Workbook_ BeforeClose(Cancel As Boolean)

Application.DecimalSeparator = oldDecimalSep     Application.ThousandsSeparator = oldThousandsSep     Application.UseSystemSeparators = False End Sub

若要使用这些宏,请打开要使用不同格式分隔符的工作簿。然后,打开Visual Basic编辑器,然后在“项目”窗口中双击ThisWorkbook对象。将宏代码放入代码窗口并保存所有内容。

现在,无论何时打开工作簿,Excel都会存储现有的分隔符信息,并将其更改为使用乔治希望的逗号和句点。

关闭工作簿时,将还原旧的分隔符信息。

此代码有一个陷阱:打开工作簿时,同时打开的任何其他工作簿将使用不同的格式。因此,诀窍是只使用“特殊”工作簿,而要知道关闭它后一切都会恢复正常。

使用这样的代码时,要记住一件事:您只更改看到的数字的格式。由于Windows处理区域设置的方式,您甚至可能不需要这样做。换句话说,您可能会在Excel中看到这样的数字:

1,234,567.89。当您将该工作簿发送给使用不同区域设置的国家/地区的用户时,她将看到以下内容:

1.234.567,89。换句话说,Windows会在显示数字的世界范围内正确显示数字。

注意:

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

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

本提示(13307)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。