2017-01-04 3 views
2

Я хотел бы создать фрагмент кода, который может конвертировать числа в моей книге с английского на французский формат форматирования.Изменить на канадский (CDN) Французский формат форматирования в Excel VBA

Например,

  • английское форматирование будет $1,000,000.99 и
  • Французские будет 1 000 000,99 $

Я не могу найти какие-либо французские коды по умолчанию, встроенные в Excel и с помощью , вместо . для десятичной дроби не отображает числа, меньшие $ 1.

Любая помощь или совет оцениваются!

ответ

1

Для того, чтобы символ валюты появится справа от вашего номера, используйте NumberFormat свойство Range объекта и установить его:

  • Для долларов: #,##0.00 [$$-C0C]
  • Для евро: #,##0.00 [$€-C0C]

Поведение запятых и периодов для десятичных знаков и группировки цифр обычно контролируется вашими областями и языковыми настройками в Windows.

Вы можете изменить эту настройку в масштабе всего приложения (то есть это повлияет на любую рабочую книгу, открытую на вашем компьютере), изменив значения Application.DecimalSeparator и Application.ThousandsSeparator в VBA. Кроме того, вы можете достичь того же эффекта, перейдя в меню Файл> Параметры> Дополнительно и снимите флажок «Использовать системные разделители»

enter image description here

+0

Спасибо за помощь! У меня есть цикл кода, который я пытаюсь использовать, чтобы найти и заменить все форматирование валюты в моей книге, но он, похоже, не заменяет новый код форматирования должным образом. за каждый лист ActiveWorkbook.Sheets Application.FindFormat.NumberFormat = "$ # ## 0,00" Application.ReplaceFormat.NumberFormat = "#, ## 0,00 [$$ - 40C]" Sheet.Cells.Replace Что: = "", Замена: = "", LookAt: = xlPart, SearchOrder _ : = xlByRows, MatchCase: = False, SearchFormat: = True, ReplaceFormat: = True Следующий Он возвращает ошибку, зависящую от приложения/объекта , Есть идеи? – Greg

+0

@Greg обычно эта ошибка относится к обращению к объекту, который не был 'Set'. Вероятно, это потому, что вы используете 'Лист' в цикле' Для каждого'. Попробуйте добавить «Dim Sht as Worksheet» чуть выше значения for и вместо этого используйте «Для каждого Sht в ActiveWorkbook.Sheets». Вам также нужно будет изменить любой «Лист» в цикле на «Sht» –

+0

У меня есть «dim Sheet as Worksheet», написанный в моем коде, и весь следующий код использует это свойство, однако он не будет работать. Ошибка возникает в 'Application.ReplaceFormat.NumberFormat =" #, ## 0.00 [$$ - 40C] "' – Greg

0

Чтобы получить код для каких-либо действий в Excel:

  1. начала записи макроса
  2. делать то, что вы хотите повторить через код
  3. остановить запись
  4. проверки макро-код (ALT + F11)

В этом случае применения форматирования дает этот код:

Selection.NumberFormat = "#,##0.00 $" 

Надеюсь, это поможет.

Смежные вопросы