У Джорджа есть единственная рабочая тетрадь, в которой он должен отправлять информацию в формате валюты Латинской Америки, например: 238.769,76. Джордж не смог придумать способ справиться с этим, не считая изменения своих глобальных настроек. Он задается вопросом, есть ли способ изменить формат валюты только для одной книги.

«Глобальные настройки», о которых говорит Джордж, технически называются Microsoft «региональными настройками». Они действительно обрабатываются непосредственно 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), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (13307) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.